跪求VB和Access连接的代码
VB窗口和数据库都已经做好了就是不知道该如何连接在一起
跪求高手发点代码
后天就要答辩了 参考
vb怎么和access连接 http://download.csdn.net/source/1498324 在菜单 工程-->引用-->microsoft activex data objects 2.8 library-->确定。
Dim conn AS ADODB.Connection
Dim rs AS ADODB.Recordset
Set conn=New ADODB.Connection
conn.ConnectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source= " & App.Path & "\data.mdb;Jet OLEDB:DataBase password=; "
conn.Open
rs.Open "select * from 表",conn,1,3
最好找本书看下 1.建立数据表
CREATE TABLE 数据表名 (字段名1 数据类型(长度), 字段名2 数据类型(长度),……)
举例:create table student(xh text(9), xm text(8) , cj single(4), nl integer(2))
建立含有xh、xm、cj、nl 4个字段的student表
2.添加字段
ALTER TABLE 数据表名 ADD COLUMN 字段名 数据类型(长度)
举例:alter table student add column xb text(2) '在学生表中添加性别字段
3.删除字段
ALTER TABLE 数据表名 DROP COLUMN 字段名
举例: alter table student drop column nl '将学生表中的年龄字段删除
4.数据查询
SELECT 字段名表 FROM 子句 WHERE 子句 GROUP BY 子句HAVING 子句 ORDER BY 子句 INTO 子句
举例:select xh, xm from student where xb="男" order by xh
从学生表中查询性别为男的学生,显示其学号和姓名并使结果按学号升序排列。
5.添加记录
INSERT INTO 数据表名(字段名1,字段名2……) VALUES(数据1,数据2……)
举例:insert into student (xh, xm, xb) values("015200101", "王小二", "男")
6.删除记录
DELETE FROM 数据表名 WHERE 条件表达式
举例:delete from student where xb="男"
7.更新记录
UPDATE 数据表名 SET 新数据值 WHERE 条件表达式
举例:update student set cj=cj+5 where xb="女"
2.------------------------------------------------------------------------------------------------
要能正确引用ADO数据对象,应在VB 6.0集成开发环境中选择“工程”菜单,再点击“引用”菜单项,在弹出的“引用”对话框中选中“Microsoft ActiveX Data Objects 2.1 Library”选项来添加ADO数据对象类型库。
3.------------------------------------------------------------------------------------------------
① DAO数据对象
要能正确引用DAO数据对象来建立与数据库的连接,应先在VB集成开发环境中选择“工程”菜单,再点击“引用”菜单项,在弹出的“引用”对话框选择“Microsoft DAO 3.51 Object Library”选项来添加DAO数据对象类型库。
5.------------------------------------------------------------------------------------------------
'RS.AbsolutePosition'当前游标
'RS.RecordCount '表记录数
'RS.Fields.Count '表字段多少
'RS.Fields(i).name '字段名
6.打开加密的数据庫------------------------------------------------------------------------
Set Conn = New ADODB.Connection
Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & App.Path & "/Sjk.mdb;Jet OLEDB:Database password=269796455;"
Set RS = New ADODB.Recordset
RS.Open "select * from 单词_新概念英语 where 课目='1-001' order by 序", Conn, 1, 1
9.添加记录到数据庫------------------------------------------------------------------------
RS.AddNew
RS.Fields!用户名 = Combo1.Text
RS.Fields!密码 = Text2.Text
RS.Update
10.修改数据库记录------------------------------------------------------------------------
RS.Fields!用户名 = Combo1.Text
RS.Fields!密码 = Text2.Text
RS.Update
11.动态加载VB控件(不用在原窗体预先添加)------------------------------------------------------------------------
Set text2 = Controls.Add("vb.textbox", "text2", P1(2))
text2.Visible = True
12.添加表字段名到下拉列表中------------------------------------------------------------------------
For I = 1 To RS.Fields.Count
Form1.P1_2_Combo1(3).AddItem RS.Fields(I - 1).Name
Next I
15.打开10条记录
RS.Open "select top 10 * from 单词_新概念英语 order by 序", Conn, 1, 2
16.关于rs.open sql,conn,1,1的问题
后面带1,1和不带1,1
带参数和不带参数有何区别吗。
不带1,1会出错
前一个1是游标类型,第二个是锁定类型,在ADODB.inc(好像是这个文件名)定义了一堆常量,其中就有这两个,但是必须要包含那个文件才可以使用,所以就都使用数值了
第一个:
1,前向游标:即读取数据记录只能从前向后读,不能返回,并且不能反映读取同时其它用户对数据库的更新
2,静态游标,可向前和向后,但是不能反映其它用户的更新
3,动态游标,功能最强,当然也最耗资源
第二个
1,只读锁定,只能读不可以写的锁定数数据库
2,悲观锁定,从打开数据库开始锁定数据库,即锁定时其它用户无法更新数据库
3,乐观锁定,只在更新的瞬间锁定数据库
4,批量乐观锁定,在更新完一批以后提交到数据库时才锁定,如果有很多用户同时在更新数据库,则有可能更新到同一条记录
悲观锁定最不容易发生冲突,但是锁定时间太长,各有各的用途,实际应用时选择
1,1 好像是只读
1,2 好像是擦入
1,3 好像是删除
rs.open sql,conn,1,1
前一个1是游标类型,表明是键集游标,其他用户对记录说做的修改将反映到记录集中,但其他用户增加或删除记录不会反映到记录集中。
后一个1是锁定类型,说明是只读类型。
17.复制表
Conn.Execute "Select * Into 单词_自定义_sgzhxfsg2 from 单词_自定义_sgzhxfsg"
只复制表结构
Conn.Execute "Select * Into 单词_自定义_sgzhxfsg2 from 单词_自定义_sgzhxfsg where 1=0"
18.
Private Sub Command3_Click() '"F:\ME\VB\ShiYan\试验\sjk.xls有多少列
Set exceladd = CreateObject("excel.application")
Set excelbook = exceladd.workbooks.Open("F:\ME\VB\ShiYan\试验\sjk.xls")
Set excelsheet = excelbook.worksheets(1)
'MsgBox sheet1.usedrange.cells.Columns.Count
MsgBox excelsheet.usedrange.cells.Columns.Count
MsgBox excelsheet.usedrange.cells.rows.Count
End Sub
19.
Private Sub Command2_Click() '读F:\ME\VB\ShiYan\试验\sjk.xls内容
Set exceladd = CreateObject("excel.application")
Set excelbook = exceladd.workbooks.Open("F:\ME\VB\ShiYan\试验\sjk.xls")
Set excelsheet = excelbook.worksheets(1)
MsgBox excelsheet.range("A2").Value
End Sub
20.表名
Set RS0 = Conn.OpenSchema(20)
Do Until RS0.EOF
A(1) = A(1) & RS0("table_name") & FC
RS0.MoveNext
Loop
F1.Text1.Text = A(1)
MSysAccessObjects
MSysAccessXML
MSysACEs
MSysObjects
MSysQueries
MSysRelationships
表控件
开支
日记
日志
杀虫
设置
施肥
收入
系统控件
21.字段内容长度
MsgBox RS0.Fields(0).ActualSize
22.字段长度
MsgBox RS0.Fields(Z(1)).NumericScale 活该!硕士吧?延期是你自己找的!
活该! 硕士?真的假的?真的那就杯具了。 平时的日子太好混了…… 现在的现会太轻浮
硕士也不例外.........
这位仁兄强,顶!!!!!!!!!!! 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
不要忘了加引用数据库引擎
好好学习,天天向上!! 噢,天啊, 这还答辩啊
dim conn as adodb.connection
dim rec as adodb.recordset
set conn=new adodb.connection
conn.constring=="Provider=Microsoft.Jet.OLEDB.4.0;Data Source= " & App.Path & "\XXXX.mdb;Jet OLEDB:DataBase password=; "
conn.open conn.constring
set rec =new adodb.recordset
rec.open "Select * from [XXXX]",conn,1,1 楼主啊,网络社会,学会搜索是一大求生技能啊……
这个网络一搜一大把源码的 本帖最后由 bcrun 于 2011-01-20 14:46:51 编辑 为什么这段
在菜单 工程-->引用-->microsoft activex data objects 2.8 library-->确定。
Dim conn AS ADODB.Connection
Dim rs AS ADODB.Recordset
Set conn=New ADODB.Connection
conn.ConnectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source= " & App.Path & "\data.mdb;Jet OLEDB:DataBase password=; "
conn.Open
rs.Open "select * from 表",conn,1,3
编译后运行的EXE会出现这个错误的?
91未设置对象变量或 with block 变量
控件没有加到面板上!报无此对象!回答完毕!
你太有才了
顶一个 那个控件没添加呀?
答辩... 楼主还是花一两个小时看看书吧,哪怕MSDN上都有好多. 搜asp什么之类的源码,一堆一堆的,拿来就用了。
还硕士那,唉。。。这过的什么日子呀。 呵呵。楼主悲剧了。不喜欢这样的。平时玩去了吧? 我也给研究性学者回个帖吧!
围观不鸣真象
补充:VB , 基础类