求助vb连接access!!!
最近老师布置的作业,用vb加access编一个小的东西,老是出现和access连的错误,希望有会的同学可以帮帮忙,检查一下修改一下,感激不尽!!!这是我编的程序的连接http://download.csdn.net/source/3031901 [code=V]dim conn as new adodb.connection
dim rs as new adodb.recordset
'连接数据库
with conn
If .State<>adstateclosed Then .Close
.ConnectionString = "provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.path & "\数据库名.mdb;Mode=ReadWrite;Persist Security Info=False"
.Open
End With
'查询记录
if rs.state<>adstateclosed then rs.close
rs.open "select * from 表名",conn,adopenkeyset,adlockreadonly
set mshflexgrid1.datasource=rs
rs.close
'新增记录
conn.execute "insert into 表名(...) values(...)"
'修改记录
conn.execute "update 表名 set ... where ..."
'删除记录
conn.execute "delete from 表名 where ..."[/code] 我只看了你的form1,也没有找到它b1子程序,程序主体已经修改得能用了,
其它的自己改吧,写程序要细心,而且要有耐心。
[code=V]
Dim adocon As ADODB.Connection
Dim adorst As ADODB.Recordset
Dim adocom As ADODB.Command
Private Sub display()
Text1.Text = cn(adorst.Fields("YD").value)
Text2.Text = cn(adorst.Fields("YM").value)
Text3.Text = cn(adorst.Fields("QS").value)
End Sub
Private Function cn(value As Variant) As Variant
If IsNull(value) = True Then
cn = ""
Else
cn = value
End If
End Function
Private Sub Command1_Click(Index As Integer)
adorst.MoveFirst
Call display
End Sub
Private Sub Command2_Click(Index As Integer)
adorst.MoveLast
Call display
End Sub
Private Sub Command3_Click(Index As Integer)
adorst.MovePrevious
If adorst.BOF Then
adorst.MoveFirst
End If
Call display
End Sub
Private Sub Command4_Click(Index As Integer)
adorst.MoveNext
If adorst.EOF Then
adorst.MoveLast
End If
Call display
End Sub
Private Sub Command6_Click(Index As Integer)
If Text1 = "" Or Text2 = "" Or Text3 = "" Then
MsgBox "请写全数据"
Exit Sub
End If
adorst.Fields("YD") = Text1.Text
adorst.Fields("YM") = Text2.Text
adorst.Fields("QS") = Text3.Text
adorst.Update
MsgBox "添加成功"
End Sub
Private Sub Command7_Click(Index As Integer)
Dim res As Integer
res = MsgBox("确实要删除此行记录吗?", vbExclamation + vbYesNo + vbDefaultButton2)
If res = vbYes Then
adorst.Delete
adorst.MoveNext
If adorst.EOF = True Then
adorst.MoveLast
End If
End If
Call display
End Sub
Private Sub Command8_Click(Index As Integer)
Form4.Show
Form1.Hide
End Sub
Private Sub Form_Load()
Set adocon = New ADODB.Connection
Set adorst = New ADODB.Recordset
'建立连接
adocon.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + App.Path + "\db.mdb;"
adocon.Open
Dim vs As String
vs = "SELECT*FROM b1"
adorst.Open vs, adocon, adOpenStatic, adLockOptimistic
End Sub
[/code] 不要分的资源,自己看看吧!
http://download.csdn.net/source/561006 如果是初学,这些对你很有用:
http://download.csdn.net/source/1644211
http://download.csdn.net/source/1498324
http://download.csdn.net/source/1483924
http://download.csdn.net/source/1371356
http://download.csdn.net/source/1627068 VB如何与ACCESS数据库连接
方法1
建立一个模块
将工程的启动设置为 SUB MAIN
在模块里写下面代码
Public db As Database
Public rs As Recordset
Sub main()
set db=db.opendatabase("数据库路径") (建议用相对路径--就是把数据库文件和工程文件放在同一目录下--相对路径就是APP.PATH+"数据库名带后缀")
第一启动窗体(如:form1).show
end sub
以后在其他窗体中如果要调用数据库只用在窗体中写代码
set rs=openrecordset(<可以是数据库的表--如"student",也可以是查询语句--如"select* form student">)
这时数据库的内容都存在FILE集合里
比方说set rs=openrecordset("select* form student")
rs.file(0)就是SQL语句查询结果的第一列
rs.files就是整个结果
使用text1.text=rs.file(0)就可以把文本框于查询结果绑定起来
如果要对数据库进行修这时用以下代码:
db.Execute (<SQL语句--如"insert into student(sno,sname) value("","")">)
方法2
工程--部件--选择microsoft data bound grid control 5.0
然后在窗体中添加左边工具栏的 DATA 和DBGRID 控件
选择DBGRID 将属性DATASOURCE 设置为DATA控件的名字(如DATA1)
然后选择DATA 将属性CONNECT设置为ACCESSS 2000
设置DATABASENAME 选择数据库的存放路径
最后设置RECORDSET 为需要连接的表的名字
运行就可以看到 DATAGRID中显示了数据库的信息
方法3
Dim con as ADODB.Connection
Set con = New ADODB.Connection
con.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\db1.mdb;Persist Security Info=False"
或者
Dim con as new ADODB.Connection
con.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\db1.mdb;Persist Security Info=False"
con.open
不要忘了加引用数据库引擎
非常感谢各位的帮助,现在我按照猴哥的改了一下,但是不能连上数据的表,不知道怎么回事,还希望大侠能再帮忙。 adocon.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + App.Path + "\db.mdb;"
的问题
不知道你的数据库是否有密码
可以用ADODC控件连通后复制里面的字符串使用 哦,是免分mark,结帖的时候记得纯mark的不要给分…… "SELECT* FROM b1"
"SELECT* FROM 表名" VB如何与ACCESS数据库连接
方法1
建立一个模块
将工程的启动设置为 SUB MAIN
在模块里写下面代码
Public db As Database
Public rs As Recordset
Sub main()
set db=db.opendatabase("数据库路径") (建议用相对路径--就是把数据库文件和工程文件放在同一目录下--相对路径就是APP.PATH+"数据库名带后缀")
第一启动窗体(如:form1).show
end sub
以后在其他窗体中如果要调用数据库只用在窗体中写代码
set rs=openrecordset(<可以是数据库的表--如"student",也可以是查询语句--如"select* form student">)
这时数据库的内容都存在FILE集合里
比方说set rs=openrecordset("select* form student")
rs.file(0)就是SQL语句查询结果的第一列
rs.files就是整个结果
使用text1.text=rs.file(0)就可以把文本框于查询结果绑定起来
如果要对数据库进行修这时用以下代码:
db.Execute (<SQL语句--如"insert into student(sno,sname) value("","")">)
方法2
工程--部件--选择microsoft data bound grid control 5.0
然后在窗体中添加左边工具栏的 DATA 和DBGRID 控件
选择DBGRID 将属性DATASOURCE 设置为DATA控件的名字(如DATA1)
然后选择DATA 将属性CONNECT设置为ACCESSS 2000
设置DATABASENAME 选择数据库的存放路径
最后设置RECORDSET 为需要连接的表的名字
运行就可以看到 DATAGRID中显示了数据库的信息
方法3
Dim con as ADODB.Connection
Set con = New ADODB.Connection
con.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\db1.mdb;Persist Security Info=False"
或者
Dim con as new ADODB.Connection
con.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\db1.mdb;Persist Security Info=False"
con.open
不要忘了加引用数据库引擎
补充:VB , 数据库(包含打印,安装,报表)