请教!!
我在学该网站http://matrix.hongen.com/forum/bin/frame.pl?name=guest&userkey=187-9045334-6278683 编程开发栏上一文“在VB下实现Access2000数据库编程”中的操作时,当生成工程时系统总提示“子程序或函数未定义”请大侠帮忙看看:1.他写的代码错在哪?2.您能不能给我提供类似“在VB下实现Access2000数据库编程”学习的网址?我想把我建的access数据库在我生成的工程中打开啊!!!谢谢!!他的代码如下:
Private Sub Adodc1_Click()End SubPrivate Sub CommonDialog1_Click()End SubPrivate Sub Combo1_Change()
'建立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 Sub
我在学该网站http://matrix.hongen.com/forum/bin/frame.pl?name=guest&userkey=187-9045334-6278683 编程开发栏上一文“在VB下实现Access2000数据库编程”中的操作时,当生成工程时系统总提示“子程序或函数未定义”请大侠帮忙看看:1.他写的代码错在哪?2.您能不能给我提供类似“在VB下实现Access2000数据库编程”学习的网址?我想把我建的access数据库在我生成的工程中打开啊!!!谢谢!!他的代码如下:
Private Sub Adodc1_Click()End SubPrivate Sub CommonDialog1_Click()End SubPrivate Sub Combo1_Change()
'建立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 Sub
解决方案 »
- vb6 怎么关闭自己调用shell启动的程序?
- 怎么从ACTIVEX控件内部,设定ACTIVEX外部的固有属性
- MScomm通讯测试求助。好心人帮帮我吧
- IIs6.0下怎么部署网站和邮件服务系统???等待中。。。。。。。。。。。。。。。。。。。。。。。。。。。。
- 怎么把这段代码的字加一列啊
- 我是刚学vb不久 现在我用vb读取配置文件中的"IP214.35"数据给到Text文本框里 但是Text文本框只显示IP214.35 少了双引号 谁能帮我正常把双引号读到Textw文本里
- 如何得到access数据库中表名,各表列名,主键,索引,各列数据类型,...等信息。(非ADOX.Catalog方法)
- 100分求教?解决后在开贴散分!
- vb中怎么把背景设置为空白
- 谁能给我一段屏幕取词的代码。dll也可以。我找到2个dll,没有调用的说明。[email protected]
- 如何使用API函数设置鼠标的移动速度,就如可以设置双击速度一样?
- 请教!!
'建立ADO Data控件与目标数据库的联接,并选择一个数据表,使其在DataGrid控件中显示
数据(在此处)
'建立ADO Data控件与目标数据库的联接,并选择一个数据表,使其在DataGrid控件中显示
'数据(在此处) ***把这句话注释掉。。或干脆删除