AccessデータベースのバックエンドをMySQLに変換しようとしています。これまでのところ、テーブルを変換し、クエリを渡すためのパラメータなしでクエリを更新することに問題はありません。
しかし、ユーザーからの入力を必要とするパラメーターを使用してクエリを処理する方法を理解するのに迷っています。
誰かが私にいくつかのポインタを与えることができますか?
Access DBにデータを送信するバックエンドコードを継承している場合は、注意すべき点がいくつかあります。
日付は、AccesstoMySQLでは異なる方法で処理されます。
アクセスするには、#05/05/2012#のように日付を##で囲む必要があります。MySQLでは、それらを一重引用符で囲みます、「2012年5月5日」。
スペースを含む列名とテーブル名は、Accessの[テーブル名]のように角かっこで囲まれtable name
、MySQLのようにバックスティックで囲まれます。
リンクされたテーブルの場合、次のようになります。
SELECT ID, AText
FROM LinkedTable
WHERE AText=[Forms]![Form1]![txtText]
かなりうまくいくはずです。制限があり、その場合はパススルーが必要になりますが、ほとんどのクエリは、テーブルがローカルのMSAccessテーブルであるかのようにAccess側で記述できます。
パススルーをコーディングするには、次のように言います。
Dim objconn As Object
Dim cmd As Object
''Late binding
Set objconn = CreateObject("ADODB.Connection")
objconn.Open ServerCon
Set cmd = CreateObject("ADODB.Command")
Set cmd.ActiveConnection = objconn
cmd.CommandText = "InsertUser"
cmd.Parameters.Append _
cmd.CreateParameter("UserName", adVarChar, adParamInput, 50, "param1")