CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VB >  数据库(包含打印,安装,报表)

请提供一个VB用代码访问Access数据库的例子!

楼主ghgk(红猪侠)2002-05-26 18:04:14 在 VB / 数据库(包含打印,安装,报表) 提问

很久没用VB了,以前学的一点都忘了。我原来有本电子书讲了怎么用代码访问的,但被我删掉了。我记得好像就是加入DAO支持后通过如下这样的代码访问ACCESS数据库文件的~~不用DATA控件,我只是用于很简单的对数据库记录的统计,而且要访问的ACCESS数据库文件的文件名或所在地也不一定固定,所以我才要用代码来访问。  
  Dim   mydata   As   Database  
  Dim   myres   As   Recordset  
  Set   myres   =   mydata.OpenRecordset("e:\temp\temp.mdb")  
  问题点数:20、回复次数:17Top

1 楼pl5th2001(白牙)回复于 2002-05-26 18:07:01 得分 0

Option   Explicit  
  Public   m_Con   As   ADODB.Connection  
  Public   m_Rs   As   ADODB.Recordset  
   
  Public   Sub   main()  
  Dim   ConnStr   As   String  
  Set   m_Con   =   CreateObject("ADODB.Connection")  
  ConnStr   =   "driver={Microsoft   Access   Driver   (*.mdb)};dbq="   &   App.Path   &   "\school.mdb"  
  m_Con.Open   ConnStr  
  Load   frmLogin  
  frmLogin.Show  
  End   Sub  
   
   
  Option   Explicit  
   
   
  Private   Sub   cmdCancel_Click()  
  End  
  End   Sub  
   
  Private   Sub   cmdOK_Click()  
  Dim   sql   As   String  
  sql   =   "select   *   from   user   where   username="   &   "'"   &   txtUserName   &   "'"   &   "   and   password="   &   "'"   &   txtPassword   &   "'"  
  Set   m_Rs   =   New   ADODB.Recordset  
  m_Rs.Open   sql,   m_Con,   adOpenDynamic,   adLockOptimistic  
  If   Not   m_Rs.EOF   Then  
                  Unload   Me  
                  Load   MDIForm1  
                  MDIForm1.Show  
                  Set   m_Rs   =   Nothing  
  Else  
                  MsgBox   "Invalid   Password,   try   again!",   ,   "Login"  
                  txtPassword.SetFocus  
                  SendKeys   "{Home}+{End}"  
  End   If  
  End   Sub  
   
  Top

2 楼ghgk(红猪侠)回复于 2002-05-26 18:10:36 得分 0

晕啊~~你这个过于复杂了,我原来看到那个很简单的~~我不用这么复杂的~Top

3 楼ghgk(红猪侠)回复于 2002-05-26 18:12:54 得分 0

你这个大概是通过ODBC访问吧~~如果我要访问PB的数据文件行不行~~是不是该把这里driver={Microsoft   Access   Driver   (*.mdb)};变一下呢~Top

4 楼qbilbo(风之兄)回复于 2002-05-26 18:26:37 得分 0

我想你是用DAO的方法。  
  如下:  
  Dim   mydata   As   Database  
  Dim   myres   As   Recordset  
   
  set   mydata=dbengine.opendatabase("e:\temp\temp.mdb",false,false,"ms   access;")  
  set   myres=db.openrecordset("表名")Top

5 楼monkey29(笨猴)回复于 2002-05-26 18:49:35 得分 0

刚做过一个,简单的说,加入DAO后,建立一个窗体,加一个data控件,名称data1,在form_load中添加:  
              data1.recordname=app.path&"\数据库名.mdb"  
  app.path是   指程序所在当前目录,路径的改变没有影响。  
   
  Top

6 楼ywchen2000(灌水大帝:努力奋斗)回复于 2002-05-26 19:14:07 得分 0

data1.recordset.addnew  
  data1.recordset.movenext  
  data1.recordset.movefirst  
  data1.recordset.movelast  
  data1.recordset.delete  
  data1.recordset.firdfirst  
  data1.recordset.findlast  
  DAO   就是着几条命令。还有一条,但是单词我忘了怎么打了Top

7 楼czj2000(chenzhujun)回复于 2002-05-26 19:14:33 得分 0

Dim   ConnStr   As   String  
  Set   m_Con   =   CreateObject("ADODB.Connection")  
  ConnStr   =   "driver={Microsoft   Access   Driver   (*.mdb)};dbq="   &   App.Path   &   "\school.mdb"  
  m_Con.Open   ConnStr  
  dim   rs   as   recordset  
  set   rs   =   new   recordset  
  rs.open("database   name","table")Top

8 楼ghgk(红猪侠)回复于 2002-05-26 19:15:30 得分 0

不对,我的意思不使用DAO~~而上面那位qbilbo(风之兄)提供的东西也不对的啊~Top

9 楼MarGo(潇洒)回复于 2002-05-26 19:18:02 得分 0

 
    ACCESS2000:    
  Dim   cnn   As   New   ADODB.Connection  
  Dim   cmd   As   New   ADODB.Command  
  Dim   res   As   New   ADODB.Recordset  
   
  cnn.ConnectionString=   "Provider=Microsoft.Jet.OLEDB.4.0;DataSource="   "\YourDB.mdb;Persist   Security   Info=False"  
       
  cnn.Open  
  Set   cmd.ActiveConnection   =   cnn  
  cmd.CommandText   =   strSQL           'strSQL是你的   SQL   语句  
  set   res=cmd.ExecuteTop

10 楼MarGo(潇洒)回复于 2002-05-26 19:18:32 得分 0

ACCESS   97:  
    Dim   cnn   As   New   ADODB.Connection  
  Dim   cmd   As   New   ADODB.Command  
  Dim   res   As   New   ADODB.Recordset  
   
  cnn.ConnectionString=   "Provider=Microsoft.Jet.OLEDB   3.51;DataSource="   "\YourDB.mdb;Persist   Security   Info=False"  
       
  cnn.Open  
  Set   cmd.ActiveConnection   =   cnn  
  cmd.CommandText   =   strSQL           'strSQL是你的   SQL   语句  
  set   res=cmd.Execute  
   
  Top

11 楼2002oncemore(最爱星际(protoss)不服来挑!)回复于 2002-05-26 19:24:11 得分 0

正确答案:(adodb实现)  
    dim   cnn   as   new   conncetion  
    dim   rst   as   new   recordset  
     
  with   cnn  
    .provider="microsoft..jet.oledb.4.0"  
    .open   "c:/1.mdb"         '假设acces数据库为c盘1这个文件  
  end   with  
     
  with   rst  
  .activeconnection=cnn  
  .cusorlocation=userclient  
  .cusortype=openstatic  
  .open   "select   ........."   '(sql语句)  
  end   with  
   
   
  此为用adodb实现,当然用command也可以,但以上是较高效简单的。  
   
  Top

12 楼2002oncemore(最爱星际(protoss)不服来挑!)回复于 2002-05-26 19:27:41 得分 0

dim   cnn   as   new     adodb.conncetion  
    dim   rst   as   new   adodb.recordset  
     
  with   cnn  
    .provider="microsoft..jet.oledb.4.0"  
    .open   "c:/1.mdb"         '假设acces数据库为c盘1这个文件  
  end   with  
     
  with   rst  
  .activeconnection=cnn  
  .cusorlocation=userclient  
  .cusortype=openstatic  
  .open   "select   ........."   '(sql语句)  
  end   with  
   
   
  此为用adodb实现,当然用command也可以,但以上是较高效简单的Top

13 楼ghgk(红猪侠)回复于 2002-05-26 19:29:21 得分 0

全部不是我要的啦,我想要那个更加的简单明了。基本上有些像这个样,记得是在《VB从入门到精通》里看到的~~只需在引用中加用DAO支持就可以了~不用使用数据访问控件什么的~~有些像如下这个样子,但如下代码运行不了~到第四行出错~  
  dim   aa   as   dbenging  
  Dim   mydata   As   Database  
  Dim   myres   As   Recordset  
   
  set   mydata=aa.opendatabase("e:\temp\temp.mdb",false,false,"ms   access;")  
  set   myres=mydata.openrecordset("表名")  
  Top

14 楼blueer(Observer(shop33291608.taobao.com,主营小家电,mp3,总代货源))回复于 2002-05-26 22:13:00 得分 0

dim   mydata   as   new   database  
  dim   myres   as   new   recordset..........  
  私下建议用Ado,呵呵Top

15 楼ghgk(红猪侠)回复于 2002-05-26 23:17:23 得分 0

不好意思,我是菜鸟。谁能给我一个详细些的代码?能运行的~~  
  ado有没有资料~Top

16 楼qbilbo(风之兄)回复于 2002-05-26 23:52:57 得分 20

Dim   mydata   As   Database  
  Dim   myres   As   Recordset  
   
  set   mydata=dbengine.opendatabase("e:\temp\temp.mdb",false,false,"ms   access;")  
  set   myres=db.openrecordset("表名")  
   
  只要引用了DAO,这个代码就不会错的啊!你是不是哪个符号打错了。  
  能不能告诉我错误号,或错误提示。  
   
  你的代码中dim   aa   as   dbengine有问题。  
  dbengine是DAO结构中的最上层,不需要申明,也不能声明。  
  Top

17 楼ghgk(红猪侠)回复于 2002-05-27 22:06:06 得分 0

谢谢qbilbo(风之兄)你所给出的代码是正确可运行的,也感谢各位的热心解答。Top

相关问题

  • vb代码里访问sql数据库
  • 有没有数据库的例子最好有源代码
  • 如何用VB代码建立SQL SERVER数据库
  • 如何用vb代码建立ACCESS2000的数据库?
  • 求“ 微软发布VB、C#数据库编程代码包”!
  • 如何用VB代码实现Access数据库的压缩?
  • 求 数据库为ORACLE92 画面控件为TRUE DBGRID VB代码
  • 有人用VB连过postgreSQL,和mySql数据库吗?求代码!
  • asp.net 中 用 vb 代码如何连接 access 数据库
  • 求vb常用的连接数据库的代码...

关键词

  • 代码
  • 数据库
  • 控件
  • access
  • 文件
  • myres
  • databasedim
  • recordsetset
  • mydata
  • adodb

得分解答快速导航

  • 帖主:ghgk
  • qbilbo

相关链接

  • Visual Basic类图书
  • Visual Basic类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo