저는 처음으로 이와 같은 작업을 수행하고 있으며, 유용한 정보를 찾기가 매우 어려워 보입니다.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
를 발생 ,하지만 내가 원하는 것은 그 테이블에있는 사용자에게 설정된 recorod를 표시하는 것입니다.
는 OpenRecordset 같은뭔가
누군가가 내가 미친거야 올바른 방향으로 날 지점하시기 바랍니다 수 있습니다 (사용자가 볼 수있는 테이블로 "R을") ...
"일반"통과 쿼리를 작성하고 런타임시 SQL (및 필요한 경우 연결)을 설정하고 해당 쿼리를 열면 어떻습니까? – 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