当前位置:编程学习 > VB >>

跪求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 活该!硕士吧?延期是你自己找的!
活该! 硕士?真的假的?真的那就杯具了。 平时的日子太好混了…… 现在的现会太轻浮
 硕士也不例外.........
引用 5 楼 sgzhxfsg 的回复:
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 数……

这位仁兄强,顶!!!!!!!!!!! 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 变量
引用 16 楼 lcstysoft 的回复:
为什么这段
在菜单 工程-->引用-->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……

控件没有加到面板上!报无此对象!回答完毕!
引用 18 楼 falizixun2 的回复:
引用 16 楼 lcstysoft 的回复:

为什么这段
在菜单 工程-->引用-->microsoft activex data objects 2.8 library-->确定。
Dim conn AS ADODB.Connection
Dim rs AS ADODB.Recordset
Set conn=New ADODB.Connection
conn.Connection……

你太有才了
引用 5 楼 sgzhxfsg 的回复:
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 数……


顶一个 那个控件没添加呀?


引用 18 楼 falizixun2 的回复:
引用 16 楼 lcstysoft 的回复:

为什么这段
在菜单 工程-->引用-->microsoft activex data objects 2.8 library-->确定。
Dim conn AS ADODB.Connection
Dim rs AS ADODB.Recordset
Set conn=New ADODB.Connection
conn.Connection……
答辩... 楼主还是花一两个小时看看书吧,哪怕MSDN上都有好多. 搜asp什么之类的源码,一堆一堆的,拿来就用了。

还硕士那,唉。。。这过的什么日子呀。 呵呵。楼主悲剧了。不喜欢这样的。平时玩去了吧? 我也给研究性学者回个帖吧!
引用 6 楼 dbcontrols 的回复:
活该!硕士吧?延期是你自己找的!
活该!


围观不鸣真象
补充:VB ,  基础类
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,