1、DimobjCnAsNewConnection,objRsAsNewRecordset
objCnConnectionString="Provider=MicrosoftJetOLEDB351;"&"DataSource="&AppPath&objCnOpen
2、dimobjCnAsConnection
SetobjCn=NewConnection
objCnOpen“DSN=实例2DSN”
3、ADOData控件创建连接
扩展资料
ACCESS数据库特性
1、access有强大的数据处理、统计分析能力,利用access的查询功能,可以方便地进行各类汇总、平均等统计。并可灵活设置统计的条件。
2、access用来开发软件,比如生产管理、销售管理、库存管理等各类企业管理软件,其最大的优点是:易学,非计算机专业的人员,也能学会。
3、在开发一些小型网站WEB应用程序时,用来存储数据。例如ASP+Access。这些应用程序都利用ASP技术在InternetInformationServices运行.比较复杂的WEB应用程序则使用PHP/MySQL或者ASP/MicrosoftSQLServer。
'
'此为ADODC部件的CONNECTSTRING属性值,可以通过窗体一步一步设置,会自动生成,当然直接复进去也可以。testmdb为数据库文件,最好不要为空,不然都看不到连接成功与否。
'添加用AddNew方法,查询用SQL语句:select [字段名1],[字段名2],,[字段名n] from [表名] where 条件[如 ID >23 ,或 ID between 2 and 30]
'删除用delete方法,修改用update方法
'Provider=MicrosoftJetOLEDB40;Data Source=apppath & "\testmdb";Mode=Share Deny None;Persist Security Info=False
'
'
Option Explicit
Dim cat As New ADOXCatalog
Dim tbl As New ADOXTable
Private Sub Form_Load()
Adodc1RecordSource = "select 日期 ID from myTable order by ID DESC"
DataGrid1Refresh
End Sub
存取对象变量库结构作为一个功能较完备的Windows软件开发平台,Visual Basic专业版提供了对数据库应用的强大支持。尤其提供了使用数据控件和绑定控制项,使用数据库存取对象变量(Data Access Object Variable),直接调用ODBC 20 API接口函数等三种访问数据库的方法。对其标准内置的Ms Access数据库,它可以提供不弱于专业数据库软件的支持,可以进行完整的数据库维护、 *** 作及其事务处理。在VB中,将非Access数据库称为外来数据库。对于FoxPro、dBASE、Paradox等外来数据库。虽然借助VB的Data Manager 能够对这些数据库进行NEW、OPEN、DESIGN、DELETE等 *** 作,但在应用程序的运行状态中并不能从底层真正实现这些功能。本文从使用数据库存取对象变量的方法出发,实现了非Access格式数据库(以FoxPro数据库为例)的建新库、拷贝数据库结构、动态调入等 *** 作,阐述了从编程技巧上弥补VB对这些外来数据库支持不足的可行性 。
一、VB数据库的体系结构具体的VB的数据库结构。
VB数据库的核心结构是所谓的MicroSoft JET数据库引擎,JET引擎的作用就像是一块"面板",在其上可以插入多种ISAM(Indexed Sequential Access Method,即索引顺序存取方 法) 数据驱动程序。JET引擎为Access格式数据库提供了直接的内部(build-in)支持,这就是VB对Access数据库具有丰富支持的真正原因。
VB专业版中提供了FoxPro、dBASE(或 Xbase)、Paradox、Btrieve等数据库的ISAM驱动程序,这就使得VB能支持这些数据库格 式。另外,其他的许多兼容ISAM的驱动程序也可以通过从厂商的售后服务得到。因而从理论上说,VB能支持所有兼容ISAM的数据库格式(前提是只需获得这些数据库的ISAM驱动接口程序)。
由上可见,Ms JET引擎实质上提供了:一个符合ANSI标准的语法分析器;为查询结果集的使用而提供的内存管理功能;同所支持的数据库的外部接口;为应用代码提供的内部接口。实际上,在VB中从一种数据库类型转化为另一种数据库类型几乎不需要或只需要很少的代码修改。而且,尽管dBASE、Paradox本身的DDL (Data Definition Language,即数据定义语言)和DML(Data Manipulation Language,即数据 *** 纵语言)是非结构化查询的,但它们仍然可以使用VB的SQL语句和JET引擎来 *** 纵。
从VB的程序代码的角度来看,ODBC,ISAM驱动程序以及Ms Access数据库的整个外部结构够可以统一为一个一致的编程接口。也即是说,提供给VB应用程序员的记录集对象视图同所使用的数据库格式及类型是相互独立的。即对FoxPro等数据库仍然可以使用众多的数据库存取对象变量,这就为非Access数据库的访问提供了最重要的方法。
二 、使用非Access数据库时的参数设置及配置文件的参数读取如果在VB的程序中使用了数据库的 *** 作,将应用程序生成EXE文件或打包生成安装程序后,则必须提供一个配置 (INI)文件,在INI文件中可以对不同类型的数据库进行设置。如果找不到这个INI文件, 将会导致不能访问数据库。通常情况下,INI文件的文件名和应用程序的名称相同,所以如果没有指明,VB的程序会在Windows子目录中去找和应用程序同名的INI文件。可以使用VB中的SetDataAccessOptions语句来设置INI文件。
SetDataAccessOptions语句的用法如下:SetDataAccessOptions 1 ,IniFileName其中IniFileName参数指明的是INI文件的带路径的文件名。值得注意的是,当应用程序找不到这个INI文件时,或在调用 OpenDataBase函数时对其Connect参数值没有设定为VB规定的标准值,如对FoxPro 25格式设定为了" FoxPro;"(应为" FoxPro 25; "),或者没有安装相应的ISAM驱动程序,则此时VB会显示一条错误信息" Not Found Installable ISAM "。通常,INI文件在应用程序分发出去以前已经生成,或者在安装时动态生成,也可以在应用程序中自己生成。 通常这种 INI文件中有" [Options]"、"[ISAM]"、" [Installed ISAMs]"、"[FoxPro ISAM]"、"[dBASE ISAM] " 、" [Paradox ISAM] "等设置段,对于一个完整的应用程序则还应有一个属于应用 程序自己的设置段如" [MyDB]”。可在其中设置DataType、Server、DataBase、 OpenOnStartup、DisplaySQL、QueryTimeOut等较为重要的数据库参数,并以此限定应用程序一般的运行环境。 Windows API接口函数在Kernelexe动态链接库中提供了一个OSWritePrivateProfileString函数,此函数能按Windows下配置文件(INI)的书写格式写入信息。
在通常情况下,应用程序还需要在运行时读取配置文件内相关项的参数。比如PageTimeOut(页加锁超时时限)、MaxBufferSize(缓冲区大小)、LockRetry(加锁失败时重试次数)等参数,通过对这些参数的读取对应用程序运行环境的设定、潜在错误的捕获等均会有很大的改善。
三 、数据存取对象变量对外来数据库编程的方法及其实例在VB专业版数据库编程的三种方法中,第二种-使用数据库存取对象变量(DAO)的方法最具有功能强大、灵活的特点。 它能够在程序中存取ODBC 20的管理函数;可以控制多种记录集类型:Dynaset,Snapshot 及Table记录集合对象;可以存储过程和查询动作;可以存取数据库集合对象,例如 TableDefs,Fields,Indexes及QueryDefs;具有真正的事物处理能力。因而,这种方法对数据库处理的大多数情况都非常适用。
由于VB中的记录集对象与所使用的数据库格式及类型是相互独立的,所以在非Access数据库中也可以使用数据库存取对象变量的方法。因而 对FoxPro等外来数据库而言,使用数据库存取对象变量的方法同样也是一种最佳的选择。 有一点需要注意的是,VB的标准版中仅能使用数据控件(Data Control)对数据库中的记录进行访问,主要的数据库存取对象中也仅有Database、Dynaset对象可通过数据控件的属 性提供,其它的重要对象如TableDef、Field、Index、QueryDef、Snapshot、Table等均不能在VB的标准版中生成,所以使用数据存取对象变量的方法只能用VB 30以上的专业版。
Imports System
Imports SystemDrawing
Imports SystemComponentModel
Imports SystemWindowsForms
Imports SystemDataOleDb
Imports SystemData
Public Class Form1
Inherits Form
Private components As SystemComponentModelContainer = Nothing
Private WithEvents lastrec As Button
Private WithEvents nextrec As Button
Private WithEvents previousrec As Button
Private WithEvents firstrec As Button
Private t_books As TextBox
Private t_nl As TextBox
Private t_xb As TextBox
Private t_xm As TextBox
Private t_id As TextBox
Private l_books As Label
Private l_nl As Label
Private l_xb As Label
Private l_xm As Label
Private l_id As Label
Private label1 As Label
Private myDataSet As DataSet
Private WithEvents button1 As Button
Private WithEvents button2 As Button
Private WithEvents button3 As Button
Private WithEvents button4 As Button
Private myBind As BindingManagerBase
Public Sub New ( )
MyBaseNew ( )
GetConnected ( )
InitializeComponent ( )
End Sub
'清除在程序中使用过的资源
Protected Overloads Overrides Sub Dispose (ByVal disposing As Boolean)
If disposing Then
If Not (components Is Nothing) Then
componentsDispose ( )
End If
End If
MyBaseDispose ( disposing )
End Sub
Public Sub GetConnected ( )
'创建一个数据连接
Dim strCon As String = " Provider = MicrosoftJetOLEDB40 ;
Data Source = dbmdb "
Dim myConn As OleDbConnection = New OleDbConnection ( )
myConnConnectionString = strCon
Dim strCom As String = " SELECT FROM person "
'创建一个 DataSet
myDataSet = New DataSet ( )
myConnOpen ( )
'通过OleDbDataAdapter对象得到一个数据集
Dim myCommand As OleDbDataAdapter = New OleDbDataAdapter
( strCom , myConn )
'把Dataset绑定books数据表
myCommandFill ( myDataSet , "person" )
'关闭此数据连接
myConnClose ( )
End Sub
'插入数据记录 *** 作代码
Private Sub button2_Click (ByVal sender As Object , _
ByVal e As SystemEventArgs) Handles button2Click
'判断所有字段是否添完,添完则执行,反之d出提示
If ( t_idText <> "" And t_xmText <> ""
And t_xbText <> "" And t_nlText <> ""
And t_booksText <> "" ) Then
Dim myConn1 As String = " Provider = MicrosoftJetOLEDB40 ;
Data Source = dbmdb"
Dim myConn As OleDbConnection = New OleDbConnection ( myConn1 )
myConnOpen ( )
Dim strInsert As String = " INSERT INTO person ( id , xm , xb , nl
, zip ) VALUES ( " & _
t_idText + " , '" & _
t_xmText + "' , '" & _
t_xbText + "' , " & _
t_nlText + " , " & _
t_booksText + ")"
Dim inst As OleDbCommand = New OleDbCommand ( strInsert , myConn )
instExecuteNonQuery ( )
myConnClose ( )
myDataSetTables ( "person" )Rows ( myBindPosition )BeginEdit ( )
myDataSetTables ( "person" )Rows ( myBindPosition )EndEdit ( )
myDataSetTables ( "person" )AcceptChanges ( )
Else
MessageBoxShow ( "必须填满所有字段值!" , "错误!" )
End If
End Sub
链接字符串的
source直接指定file://xxxxx/xxxmdb
此文件必须设为可读写共享
注意:
access
不推荐使用lan共享ado访问,非常容易造成数据文件损坏。
代码连接access
首先 工程---引用,在可引用的引用中将microsoft activex data objects 28 library和microsoft activex data objects recordset 28 library勾选
然后定义
Dim cn As New ADODBConnection
Dim rs As New ADODBRecordset
Set cn = New ADODBConnection
Set rs = New ADODBRecordset
定义好后连接数据库
cnConnectionString = "Provider=MicrosoftJetOLEDB40;Data Source=" & AppPath + "/newsmdb;"
cnOpen
其中数据库为当前路径下的newsmdb,
打开数据库
sql语句自己写
rsopen sql,cn,3,1
这样数据库中sql语句找到的记录都在rs中
MSFlexGrid1Top = 950
MSFlexGrid1CellTextStyle = flexTextInsetLight
MSFlexGrid1Rows = 7 '设置总行数
MSFlexGrid1Cols = 8 '设置总列数
MSFlexGrid1GridColor = &H404040 '网格颜色
MSFlexGrid1ForeColor = &HFFCCCC '字体颜色
MSFlexGrid1BackColor = vbBlack
MSFlexGrid1GridLines = 1 '设置网格线的属性
MSFlexGrid1GridLineWidth = 1 '设置网格线的粗细程序,默认为1
MSFlexGrid1控件的一部分设置,自己找属性看看其他设置
将数据写入表格中
MSFlexGrid1TextMatrix(0, 0) = "名称"
MSFlexGrid1TextMatrix(0, 1) = "最新价"
MSFlexGrid1TextMatrix(0, 2) = "涨跌"
MSFlexGrid1TextMatrix(0, 3) = " 成交数"
MSFlexGrid1TextMatrix(0, 4) = "名称"
MSFlexGrid1TextMatrix(0, 5) = "最新价"
MSFlexGrid1TextMatrix(0, 6) = "涨跌"
MSFlexGrid1TextMatrix(0, 7) = "成交数"
将rs中的数据写入表格
for i=0 to 5
MSFlexGrid1TextMatrix(i, 1) = rs("数据库字段")
rsmovenext
next
首先你需要在部件中把这两个部件添加到工具栏中并将他们拖到窗口中
上面那个是VB连接数据库的必要的一个部件,我说一下大致的步骤吧
1先把上面第一个部件拖到Frm1上,接着新建一个模块并输入下面这串代码
红色框内是你的数据库名称 打完之后先保存模块才能生效
2在当前Frm1里面建几个text分别显示你数据库里面某个表里某个字段的数据
3将第一个图中第二个部件拖到Frm1里,这个部件是用来显示你某个表里所有的数据的,你可以在你鼠标单击表里的内容时显示在窗体的几个TEXT中
大致应该就是按照这个思路去做的 我因为没有具体的表什么的也不知道怎样讲的更明白点,而且我不太明白你最后那个计算是什么意思就只能帮到这了。。。有什么问题你可以追问
以上就是关于求VB登陆窗口连接ACCESS数据库的代码全部的内容,包括:求VB登陆窗口连接ACCESS数据库的代码、VB6.0 *** 作Access方法、怎么使用VB读取ACCESS数据库并显示等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)