请教大侠!
在VB6中能打开ACCESS数据库,不能在DataGrid控件中显示数据(如在combobox控件中选雇员项或其它项,而在在DataGrid控件中不能显示相应数据)如果你知道原因,请你告诉我好吗?谢谢!!!我界面上设的控件有:Adodc1 ,DataGrid,
combobox ,四个Command控件:open new add cancel
在VB6中能打开ACCESS数据库,不能在DataGrid控件中显示数据(如在combobox控件中选雇员项或其它项,而在在DataGrid控件中不能显示相应数据)如果你知道原因,请你告诉我好吗?谢谢!!!我界面上设的控件有:Adodc1 ,DataGrid,
combobox ,四个Command控件:open new add cancel
Public conn As New ADODB.Connection
Public rs As New ADODB.RecordsetPrivate Sub Form_Load()
Dim strconn As String
strconn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\test.mdb;Persist Security Info=False;Jet OLEDB:DataBase Password='123'"
conn.CursorLocation = adUseClient
conn.Open strconn
If rs.State = 1 Then rs.Close
rs.Open "select * from Phonebook", conn, 3, 3
Set Me.DataGrid1.DataSource = rs
rs.MoveFirst
Do While Not rs.EOF
Me.Combo1.AddItem rs("Name")
rs.MoveNext
Loop
End Subconn.CursorLocation = adUseClient這句不能少照著copy
'建立ADO Data控件与目标数据库的联接,并选择一个数据表,使其在DataGrid控件中显示
'数据
'在这里用了Microsoft.Jet.OLEDB.4.0。这也是实现Access2000数据库编程的关键地方。 Adodc1.RecordSource = "select * from " + Form1.Combo1.Text ' Form1.Combo1.Text
'为表名
Adodc1.Caption = Form1.CommonDialog1.FileName
Adodc1.Refresh
Me.DataGrid1.RefreshEnd SubPrivate Sub Command1_Click()
Dim strOpenFileName As String
On Error Resume Next '错误处理
'初始化文件名
Form1.CommonDialog1.FileName = ""
'显示通用对话框
Form1.CommonDialog1.ShowOpen
'用户选择Cancel则不做任何工作
If Err <> 32755 Then
'提取文件名
strOpenFileName = Form1.CommonDialog1.FileName
If strOpenFileName <> "" Then
'提取数据表名,显示在Combo1控件中
Dim db As Database
Dim td As TableDef
Set db = OpenDatabase(strOpenFileName)
Combo1.Clear
For Each td In db.TableDefs
If Left$(td.Name, 4) <> "MSys" Then '不允许使用系统表
Combo1.AddItem (td.Name)
End If
Next td
db.Close
End If
End IfEnd SubPrivate Sub Command2_Click()
Dim GetFileName As String
Dim strDefaultName As String
'获得文件名称,并且调用保存过程
On Error Resume Next
'显示一个“另存为”对话框并且返回文件名
Form1.CommonDialog1.FileName = strDefaultName
Form1.CommonDialog1.ShowSave
If Err <> 32755 Then '用户选择取消
GetFileName = Form1.CommonDialog1.FileName
Else
Exit Sub
End If
'新建数据库与数据表
Dim db As Database
Dim tb As TableDef
Set db = DBEngine.CreateDatabase(GetFileName, dbLangGeneral, dbEncrypt)
Set tb = db.CreateTableDef("abc") ' "abc"为表名
With tb
.Fields.Append .CreateField("aa", dbDouble) '字段类型(以此为例)
.Fields.Append .CreateField("bb", dbText)
End With '
db.TableDefs.Append tb
'在建立数据表时,在表中加入一些数据。也可用此方法追加数据记录。(这里只作为一个例子,可略去)
Dim rc As Recordset
Set rc = db.OpenRecordset("abc", dbOpenDynaset)
Dim d As Double
Dim s As String
d = 123
s = "abc"
With rc
.AddNew
!aa = d
!bb = s
.Update
.Close
End With
db.Close
'联接数据库,并显示新建的数据库内容。
Adodc1.RecordSource = "select * from " + "abc"
Adodc1.Caption = Form1.CommonDialog1.FileName
Adodc1.Refresh
Me.DataGrid1.RefreshEnd SubPrivate Sub Command3_Click()
Dim db As Database
Dim rc As Recordset
Dim datad As Double
Dim datas As String
Set db = OpenDatabase(Form1.CommonDialog1.FileName)
Set rc = db.OpenRecordset("abc", dbOpenDynaset)
' 由用户输入数据,注意数据类型。追加记录也可用ADO控件,方法类同于DATA控件(可查看帮助或一些参考书)。
datad = Trim(InputBox("Enter a double:"))
datas = Trim(InputBox("Enter a string:"))
With rc
.AddNew
!aa = datad
!bb = datas
.Update
End With
rc.Close
db.Close
Adodc1.RecordSource = "select * from " + "abc" ' abc为表名
Adodc1.Caption = Form1.CommonDialog1.FileName
Adodc1.Refresh
Me.DataGrid1.RefreshEnd SubPrivate Sub Command4_Click()
Unload Me
End SubPrivate Sub Command5_Click()End SubPrivate Sub DataGrid1_Click()End SubPrivate Sub Form_Load()End Sub