初めてこのようなことをしていて、役に立つ情報を見つけるのは非常に難しいようです。可視のテーブルとしてADOレコードセットを開く
私がしたいこと: 選択クエリをMySQLデータベースに渡し、その結果をテーブルに表示します。
私はこれまで、今ではそれを持っている:私は、フォーム上のボタンがあり、クリックされたときに、次は私がRs.Open strSQL, Cn, adOpenDynamic, adLockReadOnly
は、ADOレコードセットを返し、私はそれがVBAを使用して物事を行うことができることを知っている
Option Compare Database
Sub RunPassThrough(strSQL As String)
Dim ConnectionString As String
Dim Server As String
Dim User As String
Dim Pwd As String
Dim DatabaseName As String
Dim Cn As ADODB.Connection
Dim Rs As ADODB.Recordset
' Server Hostname (or IP)
Server = "192.168.178.10"
User = "user"
Pwd = "mypass"
DatabaseName = "myDB"
ConnectionString = "Provider=MSDASQL;Driver={MYSQL ODBC 5.1 DRIVER};" & _
"Server=" & Server & ";Database=" & DatabaseName
Set Cn = New ADODB.Connection
Cn.CursorLocation = adUseClient
Cn.Mode = adModeShareDenyNone
Cn.Open ConnectionString, User, Pwd
Set Rs = New ADODB.Recordset
Rs.Open strSQL, Cn, adOpenDynamic, adLockReadOnly
'Set Rs = Cn.Execute("select * from SurveyResults limit 10;")
End Sub
Private Sub Befehl0_Click()
Dim SQL As String
SQL = "select * from SurveyResults limit 10;"
RunPassThrough (SQL)
End Sub
起こりますしかし、私が望むのは、テーブルにユーザーに設定されたその記録を表示することだけです。
(ユーザーが見ることができることをテーブルとして「RS」、)のOpenRecordset
ような何か誰かが...私はおかしくなりそうだ右方向へ
「通常の」パススルークエリを作成し、実行時にSQL(および必要に応じてConnection)を設定してそのクエリを開くのはなぜですか? – Andre
正直言って私の最初の試みでしたが、どちらもうまく動作しませんでした GUIを使ってパススルーを作成し、それを使ってsqlを変更するのは何ですか? 'CurrentDb.QueryDefs(" myquery " )SQL = "select * from SurveyResults limit 10;" 'DoCmd.OpenQuery(" myquery ")' しかし、これは本当に素晴らしい解決策ではありません。なぜなら、ユーザーはsqlを作成して実行するフォームを記入する必要があるからです。それと彼は同時にさまざまなクエリを開くことができる必要があります –
それは動作するはずです、ここに例があります:http://stackoverflow.com/a/10988389/3820271 - 私は別の方法があるとは思わない開こうとする各クエリーに対して実際のquerydefオブジェクトを持つことができます。 - これは基本的に同じ質問です:http://stackoverflow.com/questions/23664401/access-form-on-click-event-create-pass-through-query – Andre