2011-03-16 3 views
0

ms 액세스 데이터베이스와 vb 6으로 만든 양식이 포함 된 .MDB 파일을 만듭니다. ms 액세스 2000을 사용 중이며 MDB의 내 로컬 데이터베이스 , 그리고 원격 MS SQL 2005 데이터베이스.ADO에서 연결 및 쿼리에 문제가 발생했습니다.

아래 코드에서 msgbox를 사용하여 결과 집합의 반환 값을 표시 할 수 있지만 텍스트 상자에 출력하려고 시도하면 txtStatus.Value = txtStatus.Value & rstRecordSet.Fields(1) & vbCrLf과 같이 중단됩니다. 그리고 튜토리얼의 원래 예제에서 보여주는 메소드는 Debug.Print의 메소드를 가지고 있습니다. 그러나 볼 수있는 것은 아무 것도하지 않았습니다. VB는 콘솔 패널을 가지고 있지 않습니다. print 서술문은 어디로 갈까요?

GOT의 에러 코드 :

Function Testing() 
On Error GoTo Error_Handling 
    Dim conConnection As New ADODB.Connection 
    Dim cmdCommand As New ADODB.Command 
    Dim rstRecordSet As New ADODB.Recordset 

    conConnection.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & _ 
    App.Path & "\" & CurrentDb.Name & ";" 
    conConnection.CursorLocation = adUseClient 

    With cmdCommand 
    .ActiveConnection = conConnection 
    .CommandText = "SELECT * FROM Opt_In_Customer_Record;" 
    .CommandType = adCmdText 
    End With 

    With rstRecordSet 
    .CursorType = adOpenStatic 
    .CursorLocation = adUseClient 
    .LockType = adLockOptimistic 
    .Open cmdCommand 
    End With 

    If rstRecordSet.EOF = False Then 
     rstRecordSet.MoveFirst 
     Do 
      MsgBox "Record " & rstRecordSet.AbsolutePosition & " " & _ 
      rstRecordSet.Fields(0).Name & "=" & rstRecordSet.Fields(0) & " " & _ 
      rstRecordSet.Fields(1).Name & "=" & rstRecordSet.Fields(1) 
      rstRecordSet.MoveNext 
     Loop Until rstRecordSet.EOF = True 
    End If 

    conConnection.Close 
    Set conConnection = Nothing 
    Set cmdCommand = Nothing 
    Set rstRecordSet = Nothing 

    Exit Function 

Error_Handling: 
MsgBox "Error during function Testing!" 
Exit Function 

End Function 
+1

이 오류를 나열 할 수 있습니다 어느 그것이 발생 '선? – JeffO

답변

1

나는 처음 ;-) 어쨌든 난 당신이 제목에서와 같이 ADO에 대해 얘기하고 가정에서 농담 생각했다.

Hereyoucan 물건을 찾으십시오. 이 site은 다른 데이터베이스의 연결 문자열을 도울 것입니다.
ADO를 사용하는 액세스와 SQL Server의 차이점은 정확히 연결 문자열입니다. 원격 데이터 컨트롤을 사용하면 처음부터 단순하게 생활하게되는 것을 피하기를 권합니다.하지만 제대로 작동하지 않을 경우 원인을 파악해야합니다.

이 연결의 예입니다 및 데이터 가져 오기 :

Dim cnn As New ADODB.Connection 
Dim cmd As New ADODB.Command 
Dim strSql As String 

cnn.ConnectionString = _ 
    "Provider=Microsoft.Jet.OLEDB.4.0;" & _ 
    "Data Source=m:\testdbSource\testSource.mdb;" & _ 
    "User Id=admin;Password=;" 
cnn.Open 

cmd.ActiveConnection = cnn 
cmd.CommandType = adCmdText 
cmd.CommandText = "select * from tblSource" 
cmd.Execute 

Set cmd = Nothing 
cnn.Close 
Set cnn = Nothing 

이 샘플은 나를 위해 작동 :

Function Testing() 

    On Error GoTo Error_Handling 

    Dim MyDb As String 
    Dim conConnection As New ADODB.Connection 
    Dim cmdCommand As New ADODB.Command 
    Dim rstRecordSet As New ADODB.Recordset 

    MyDb = "db1.mdb" 

    With conConnection 
     .Provider = "Microsoft.Jet.OLEDB.4.0" 
     .ConnectionString = App.Path & "\" & MyDb 
     .Open 
    End With 


    With cmdCommand 
     .ActiveConnection = conConnection 
     .CommandText = "SELECT * FROM Opt_In_Customer_Record;" 
     .CommandType = adCmdText 
    End With 

    With rstRecordSet 
    .CursorType = adOpenStatic 
    .CursorLocation = adUseClient 
    .LockType = adLockOptimistic 
    .Open cmdCommand 
    End With 

    Do While Not rstRecordSet.EOF 
     MsgBox "Record " & rstRecordSet.AbsolutePosition & " " & _ 
      rstRecordSet.Fields(0).Name & "=" & rstRecordSet.Fields(0) & " " & _ 
      rstRecordSet.Fields(1).Name & "=" & rstRecordSet.Fields(1) 
      rstRecordSet.MoveNext 
    Loop 

    conConnection.Close 
    Set conConnection = Nothing 
    Set cmdCommand = Nothing 
    Set rstRecordSet = Nothing 

    Exit Function 

Error_Handling: 
    MsgBox "Error during function Testing!" 
    MsgBox Err.Description 

End Function 
+0

오류를 확인하는 방법? 오류 처리 부분으로 건너 뛰고 오류가 발생했기 때문에 오류가 있음을 알고 있지만 그 이유는 무엇인지 모릅니다. – lamwaiman1988

+0

내 질문에 내 코드를 게시했습니다. 내 MDB 파일에 내 DB에 연결하고 쿼리를 만들려고했지만 어떻게 든 실패했습니다. 도와주세요. – lamwaiman1988

+0

"Activex data objects 2.x"를 참조하셨습니까? – LeftyX

관련 문제