2010-05-18 3 views
0

최근에 문제가 발생했습니다. 나는 데이터 그리드에 레코드를 결합하고, 데이터 그리드 심지어 레코드 불구하고 채워지지 않은 응용 프로그램을 실행할 때 데이터를 나는 다음과 같은 코드를 그것은하지 않음으로써 해결되었다VB6의 빈 Datagrid 문제

답변

0

사전에

Option Explicit 
Dim conn As New ADODB.Connection 
Dim cmd As New ADODB.Command 
Dim recordset As New ADODB.recordset 





Private Sub InitializeConnection() 
Dim str As String 

str = _ 
    "Provider=Microsoft.Jet.OLEDB.4.0;" & _ 
    "Data Source=" + App.Path + "\phonebook.mdb;" & _ 
    "Persist Security Info=False" 

    conn.CursorLocation = adUseClient 

    conn.ConnectionString = str 

    conn.Open (conn.ConnectionString) 


End Sub 
Private Sub AbandonConnection() 
    If conn.State <> 0 Then 
     conn.Close 
    End If 
End Sub 
Private Sub Persons_Read() 

    Dim qry_all As String 

    ' qry_all = "select * from person,web,phone Where web.personid = person.id And phone.personid = person.id" 
    qry_all = "SELECT * FROM person" 

    Call InitializeConnection 

    cmd.CommandText = qry_all 
    cmd.CommandType = adCmdText 

    Set cmd.ActiveConnection = conn 


    If conn.State = 1 Then 

     Set recordset = cmd.Execute() 

    End If 

    Call BindDatagrid 


    Call AbandonConnection 


End Sub 
Private Function Person_Add() 

End Function 
Private Function Person_Delete() 

End Function 
Private Function Person_Update() 

End Function 
Private Sub BindDatagrid() 



    Set dg_Persons.DataSource = recordset 


    dg_Persons.Refresh 
End Sub 

Private Sub cmd_Add_Click() 
    Person_Add 
End Sub 

Private Sub cmd_Delete_Click() 
    Person_Delete 
End Sub 

Private Sub cmd_Update_Click() 
    Person_Update 
End Sub 

Private Sub Form_Load() 
    Call Persons_Read 

End Sub 

Private Sub mnu_About_Click() 
    frm_About.Show 

End Sub 

감사를 사용

있다 쿼리 직후에 연결을 닫습니다!

1

은 나를 위해, 나는이 내 문제를 해결

conn.CursorLocation = adUseClient 

연결 제한 시간을 설정 한 후 내 코드이 줄을 추가하여 문제를 해결할 수 있었다