文档库 最新最全的文档下载
当前位置:文档库 › VB利用ADO控件连接access数据库

VB利用ADO控件连接access数据库

VB利用ADO控件连接access数据库
VB利用ADO控件连接access数据库

VB利用ADO控件连接access数据库今天告诉大家VB利用ADO控件连接access数据库的两种方法:

一种是在adodc1的属性里设置数据库文件的路径,这种方法的优点是简单易操作,缺点是,当源文件换了地方后,要重新设置数据库的路径,否则连接不上数据库了。

一种是用代码设置数据库的路径,这种方法的优点就是只要源文件和数据库在同一文件夹下,无论移动到哪里都能连接上。

如果没有建立好数据库的话,先建立一个数据库,然后建立一个表比如我们建的表名为message,然后把里面的字段名称和数据类型都按自己的需要设置好.然后保存就可以了.

打开Microsoft Visual Basic6.0 我用的是VB6.0,在需要调用数据库的窗体上加入一个adodc控件,默认名称为:Adodc1。默认的情况下工具栏里是没有这个控件的,可以打开工程---部件(快捷键CTRL+T),去掉只显示选定项的勾,然后勾上Microsoft ADO Data Control(OLEDB),然后确定,工具栏就会多了一个adodc 的控件。

第一种方法:设置adodc1的属以连接数据库.在adodc1控件上右键--Adodc属性--使用连接字符串--生成--Microsoft Jet 4.0 OLE DB Provider--下一步--选择或输入数据库名称---找到要连接的数据库后,确定.然后记录源设置属性. 如果要把内容提交到数据库一般使用adCmdTable. 表选择要连接的表。

设置完毕后就可以了.

如果我们想把内容提交到数据库.举个例子..

在窗体建立一个文本框,设置属性中的DataSource为adodc1 DataField为要连接的数据库的字段名。如果数据库中有字段,会让你选择。

设置好后在窗体加一个添加记录和一个提交的按钮,设置代码:

Private Sub Command1_Click()

Adodc1.Recordset.Update '保存

Adodc1.Refresh '刷新

End Sub

添加按钮代码:

Private Sub Command2_Click()

Adodc1.Recordset.AddNew '添加新纪录

Adodc1.Recordset("姓名").Value = Text1.Text

End Sub

第二种方法:

在窗体添加Adodc控件一个text控件一个添加记录按钮一个提交按钮

在窗体设置代码:

Private Sub Form_Load()

Adodc1.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + App.Path + "\db1.mdb;Persist Security Info=False" '设置数据库路径

https://www.wendangku.net/doc/507501971.html,mandType = adCmdText '设置记录源

Adodc1.RecordSource = "select * from message" '连接数据库的message表文件

Set Text1.DataSource = Adodc1

text1.DataField = "姓名"

End Sub

添加记录按钮代码:

Private Sub Command1_Click()

Adodc1.Recordset.AddNew '添加新纪录

End Sub

提交代码:

Private Sub Command2_Click()

Adodc1.Recordset.Update '保存

Adodc1.Refresh '刷新

End Sub

好了连接方法讲完了,我都在机子上测试过了,因该没有什么问题的。如果有问题请多看几遍,或看些别人写的程序代码,会有很大进步的,我的VB也不好,因为不是计算机专业的,老师也没有教很多,高手莫笑。好了我再给大家几个查询数据库常用的代码:

首记录按钮的代码:

Private Sub sjl_Click()

Adodc1.Recordset.MoveFirst

End Sub

上一条记录按钮代码:

Private Sub up_Click()

Adodc1.Recordset.MovePrevious

If Adodc1.Recordset.BOF Then

Adodc1.Recordset.MoveFirst

End If

End Sub

下一条记录代码:

Private Sub down_Click()

Adodc1.Recordset.MoveNext

If Adodc1.Recordset.EOF Then

Adodc1.Recordset.MoveLast

End If

End Sub

末记录代码:

Private Sub mjl_Click()

Adodc1.Recordset.MoveLast

End Sub

删除记录代码:

Private Sub Command3_Click()

Adodc1.Recordset.Delete

Adodc1.Recordset.MoveNext

If (Adodc1.Recordset.BOF Or Adodc1.Recordset.EOF) Then MsgBox "已经无记录", , "提示"

End If

End Sub

如果有什么不对的地方,请大家指正。

posted @ 2008-11-26 07:19大鸟阅读(1053) | 评论(0) | 编辑收藏使用DataGrid 控件

DataGrid 控件是一种类似于电子数据表的绑定控件,可以显示一系列行和列来表示Recordset 对象的记录和字段。可以使用DataGrid 来创建一个允许最终用户阅读和写入到绝大多数数据库的应用程序。DataGrid 控件可以在设计时快速进行配置,只需少量代码或无需代码。当在设计时设置了DataGrid 控件的DataSource 属性后,就会用数据源的记录集来自动填充该控件,以及自动设置该控件的列标头。然后您就可以编辑该网格的列;删除、重新安排、添加列标头、或者调整任意一列的宽度。

在运行时,可以在程序中切换DataSource 来察看不同的表,或者可以修改当前数据库的查询,以返回一个不同的记录集合。

注意DataGrid 控件与Visual Basic 5.0中的DBGrid 是代码兼容的,除了一个例外:DataGrid 控件不支持DBGrid 的“解除绑定模式”概念。DBGrid 控件包括在Visual Basic 的Tools 目录中。

可能的用法

查看和编辑在远程或本地数据库中的数据。

与另一个数据绑定的控件(诸如DataList 控件)联合使用,使用DataGrid控件来显示一个表的记录,这个表通过一个公共字段链接到由第二个数据绑定控件所显示的表。

使用DataGrid 控件的设计时特性

可以不编写任何代码,只通过使用DataGrid 控件的设计时特性来创建一个数据库应用程序。下面的说明概要地说明了在实现DataGrid 控件的典型应用时的一般步骤。完整的循序渐进的指示,请参阅主题“DataGrid 方案1: 使用DataGrid 控件创建一个简单数据库应用程序”。

要在设计时实现一个DataGrid 控件

1. 为要访问的数据库创建一个Microsoft 数据链接(.MDL) 文件。请参阅“创建Northwind OLE DB 数据链接”主题,以获得一个示例。

2. 在窗体上放置一个ADO Data 控件,并将其ConnectionString 属性设置为在第 1 步中所创建的OLE DB 数据源。

3. 在这个Ado Data 控件的RecordSource 属性中输入一条将返回

一个记

录集的SQL 语句。例如,Select * From MyTableName Where CustID = 12

4. 在窗体上放置一个DataGrid 控件,并将其DataSource 属性设置为这个ADO Data 控件。

5. 右键单击该DataGrid 控件,然后单击“检索字段”。

6. 右键单击该DataGrid 控件,然后单击“编辑”。

7. 重新设置该网格的大小、删除或添加网格的列。

8. 右键单击该DataGrid 控件,然后单击“属性”。

9. 使用“属性页”对话框来设置该控件的适当的属性,将该网格配置为所需的外观和行为。

在运行时更改显示的数据

在创建了一个使用设计时特性的网格后,也可以在运行时动态地更改该网格的数据源。下面介绍实现这一功能的通常方法。

更改DataSource 的RecordSource

更改所显示的数据的最通常方法是改变该DataSource 的查询。例如,如果DataGrid 控件使用一个ADO Data控件作为其DataSource,则重写RecordSource和刷新该ADO Data 控件都将改变所显示的数据。

' ADO Data 控件连接的是Northwind 数据库的' Products 表。新查询查找所有

' SupplierID = 12 的记录。

Dim strQuery As String

strQuery = "SELECT * FROM Suppliers WHERE SupplierID = 12"

Adodc1.RecordSource = strQuery

Adodc1.Refresh

更改DataSource

在运行时,可以将DataSource 属性重新设置为一个不同的数据源。例如,您可能具有若干个ADO Data 控件,每个控件连接不同的数据库,或设置为不同的RecordSource 属性。可以简单地将DataSource 从一个ADO Data控件重新设置为另一个ADO Data 控件:

' 将DataSource 重新设置为一个连接到Pubs 数据库的、

' 使用Authors 表的ADO Data 控件。

Set DataGrid1.DataSource = adoPubsAuthors

重新绑定DataSource

当将DataGrid 控件用于一个远程数据库,诸如SQLServer 时,可以改变表的结构。例如,可以给这个表添加一个字段。在这种情形下,可以调用Rebind 方法根据新的结构来重新创建该网格。注意,如果已经在设计时改变了这个列的布局,DataGrid 控件将会试图重新创建当前的布局,包括任何空的列。不过,通过首先调用ClearFields 方法,可以强制该网格重新设置所有的列。

从DataGrid 返回值

在DataGrid 被连接到一个数据库后,可能想要监视用户单击了哪一个单元。可以使用RowColChange 事件——而不是Click 事件。如下所示:Private Sub DataGrid1_RowColChange(LastRow As Variant, ByVal LastCol As Integer)

' 显示用户所单击的单元的文字、行和列的信息。

Debug.Print DataGrid1.Text; DataGrid1.Row; DataGrid1.Col End Sub

使用CellText 和CellValue 方法

当一个列使用NumberFormat 属性设置格式后,CellText 和CellValue 属性是很有用的。NumberFormat 属性不必更改实际的数据格式就可以更改任何包含数字的列的格式。例如,给定一个网格,其中包含一个名为ProductID的、包含整数的列。下面的代码将使DataGrid 以"P-0000" 的格式来显示数据。换句话说,尽管在ProductID 字段中所包含的实际数值为"3",但该网格所显示的值将是"P-0003"。

Private Sub Form_Load()

DataGrid1.Columns("ProductID").NumberFormat =

"P-0000"

End Sub

要返回数据库中所包含的实际值,应使用CellValue 方法,如下所示:Private Sub DataGrid1_RowColChange(LastRow As Variant, ByVal LastCol As Integer)

Debug.Print _

DataGrid1.Columns("ProductID").CellValue(DataGrid1.Bookmark)

End Sub

注意上面所用的CellValue 和下面所用的CellText 值,都需要将Bookmark 属性作为一个参数,功能才正确。

相反地,如果要返回该字段的格式化的值,应使用CellText 方法:Private Sub DataGrid1_RowColChange(LastRow As Variant, ByVal LastCol As Integer)

Debug.Print _

DataGrid1.Columns("ProductID").CellText(DataGrid1.Bookmark)

End Sub

注意上面的CellText 方法等价于使用DataGrid 控件的Text 属性。

下一步

要阅读关于使用该控件创建简单的应用程序的一个循序渐进的过程,请参阅“使用DataGrid 控件创建简单的数据库应用程序”,或“创建一个连接DataList 控件的DataGrid”。

要了解关于Split 对象以及如何对其编程的详细信息,请参阅“操作DataGrid 视图”。

创建Northwind 的OLE DB 数据链接

访问数据的一个重要步骤是为想要访问的每个数据库都创建一个OLE DB数据源。下面的步骤为Visual Basic 所提供的Nwind.mdb (Northwind) 数据库创建这样一个对象。这个数据源被用于Visual Basic 文档所提供的一些示例过程。在一个计算机上只需要创建一次OLE DB数据源。

要创建Northwind 的OLE DB 数据源

1. 打开Windows Explorer或Windows NT Explorer。

2. 打开您想要创建OLE DB 数据源的目录。在该示例中,打开ProgramFiles、Microsoft Visual Studio和VB98。

3. 右键单击Explorer 的右边窗格,然后单击上下文菜单上的“新建”。从文件类型列表中单击“Microsoft 数据链接”。

4. 重命名新文件Northwind.MDL。

5. 右键单击文件并单击上下文菜单上的“属性”,以显示“Northwind.MDLProperties”对话框。

6. 单击“连接”选项卡。

7. 单击“提供方”框并选择“Microsoft Jet 3.51 OLE DB Provider”。

8. 在Data Source 框中输入nwind.mdb文件的路径。

9. 单击“测试连接”,检测连接。

10. 如果连接通过,单击“确定”。

注意也可以通过在“控制面板”中单击“数据链接”图标创建一个OLE DB数据源。在“管理数据链接文件”对话框中,单击“新建”创建一个新的数据源。

使用DataGrid 和ADO Data控件创建一个简单的数据库应用程序

只使用一个DataGrid 和一个ADO Data 控件,可以创建一个允许最终用户阅读和写入记录集的数据库应用程序。

要使用ADO 数据控件来创建一个简单的数据库应用程序

1. 为Northwind 数据库创建一个OLE DB 数据源。如果还没有创建数据源,请按照“创建Northwind 的O LE DB Data Link”中的步骤操作。

2. 在Visual Basic 中创建一个新的标准的EXE 工程。如果DataGrid 控件不在“工具箱”中,则用右键单击“工具箱”,然后使用“部件”对话框来添加控件。同时也载入ADO 控件。

3. 在空窗体上各放置控件的一个实例。

4. 将ADO 控件的ConnectionString 属性设置为Northwind 的数据源。单击并选定该ADO Data 控件,并按F4 键出现“属性”窗口。单击“ConnectionString”,然后单击OLE DB File。单击Northwind 的数据源。

5. 设置ADO 控件的RecordSource 属性。在“属性”窗口中,单击“记录源”并输入一条SQL 语句来填充DataGrid

控件。在本例中,输入“Select * From Products”。

6. 将DataGrid 控件的DataSource 属性设置为这个ADO Data 控件。单击并选定该DataGrid 控件。在其“属性”窗口中,单击“数据源”将出现一个包含所有数据控件的下拉列表——在本例中只有ADO Data 控件。单击这个控件。

7. 按F5 键运行这个工程。

创建一个连接DataList 控件的DataGridData

Grid 的通常用法是显示数据库的一个表所提供的“详细内容”。例如,Northwind (Nwind.mdb) 数据库包括两个表,一个名为"Suppliers",另一个名为"Products"。在本例中,我们使用DataList 控件来显示"Suppliers" 表中的供应商的公司名称。当用户单击任意一个公司名称时,这个DataList 控件将提供该公司的SupplierID。使用这个标识符,就可以构造一个查询,在"Products" 表中检索具有相匹配的SupplierID 的所有记录。换句话说,当用户单击一个公司时(在DataList 控件中),该公司生产的所有产品将出现在DataGrid 控件中。

要使用一个指定供应商的产品填充一个DataGrid 控件

1. 确认在机器上已为Northwind 数据库建立了一个OLE DB 数据源;如果还没有创建这样的一个数据源,请按照“创建Northwind 的OLE DBData连接”的步骤操作。

2. 在Visual Basic 中创建一个新的标准的EXE 工程。

如果DataGrid、DataList 和ADO Data 控件不在“工具箱”中,则右键单击“工具箱”,然后单击“部件”。在“部件”对话框中双击“MicrosoftDataGrid Control”、“Microsoft DataList Controls”以及“Microsoft ADOControl”。

3. 在一个空窗体中各放置一个DataGrid 和DataList 控件的实例。将DataList 控件放置在该窗体的左上角,然后将DataGrid 控件放在它的下面的某处。

4. 在窗体放置两个ADO Data 控件实例。选择第一个ADO Data 控件,并按F4 键来显示其“属性页”。将该控件的Name 属性设置为adoSuppliers。选择第二个ADO Data 控件并将其Name 属性设置为adoProducts。将第一个控件直接放在DataList 控件的下面,把第二个控件直接放在DataGrid 控件的下面。

5. 将这两个ADO Data 控件的ConnectionString 属性设置为Northwind的OLE DB 数据源。选择名为adoSuppliers 的控件,然后将其ConnectionString 属性设置为Northwind 的OLE DB data source (Northwind.mdl)。选择名为adoProducts的控件,并重复该操作。

6. 设置这两个ADO Data 控件的RecordSource 属性。选择adoSuppliers 并在其“属性页”上单击“RecordSoure”。输入Select* From Suppliers。这个查询将指示该ADO Data 控件返回Suppliers 表中的所有记录。选择adoProducts,单击“RecordSoure”,并输入Select *From Products。这个查询将返回在Products 表中的所有记录。

7. 将DataList 控件的RowSource 属性设置为adoSuppliers。

RowSource 属性决定由哪一个数据源为ListField 属性供应数据。

8. 将DataList 控件的ListField 属性设置为CompanyName。

ListField 属性被设置成名为Suppliers 的表中的字段名称。在运行时,DataList 控件显示在这个属性中所指定的字段的值。在本例中,该属性将显示在Suppliers 表中找到的一个公司名称。

9. 将DataList 控件的BoundColumn 属性设置为SupplierID。

BoundColumn 属性被设为Suppliers 表中的第二个字段。在本例中,这个属性就被设为SupplierID 字段。当单击DataList 控件时,BoundText 属性返回与在DataList 控件中所显示的公司相关联的SupplierID 字段的值。这个值将用于对Products 表的查询,该查询为DataGrid 控件提供数据。

10. 将DataGrid 控件的DataSource 属性设置为adoProducts。

DataSource 属性为该控件指定数据源。在本例中,该属性被设置为名为adoProducts 的ADO Data 控件,这将返回Products 表中的所有记录。

11. 在窗体的代码模块中,添加下述内容:

Private Sub Datalist1_Click()

' 声明一个用来包含新查询的字符串变量。这个新的

' 查询使用DataList 控件的BoundText属性

' 来提供一个SupplierID 值。新查询查找所有

' 具有相同的SupplierID 的产品。这个查询被

' 指定给名为adoProducts 的ADO Data 控件

' 的RecordSource 属性。在刷新控件后,DataGrid

' 将使用包含由同一个公司供应的所有产品的新

' 记录集来更新。

Dim strQuery As String

strQuery = "Select * FROM Products WHERE SupplierID = " & _

Datalist1.BoundText

With adoProducts

.RecordSource = strQuery

.Refresh

End With

With DataGrid1

.ClearFields

.ReBind

End With

End Sub

12. 运行该工程。

单击DataList 控件中的任意公司名称,将自动用该公司所供应的产品更新DataGrid 控件。

使用列

通过更改DataSource 属性,可以动态地更改在DataGrid 控件中显示的数据。例如,可以显示同一个数据库的不同表。如果这样做,则DataGrid 控件将只根据默认的属性显示数据。

添加、删除或隐藏列

通过使用Columns 集合和Column 对象的属性和方法,可以在程序中添加、删除或隐藏列。

添加和删除一列

要在运行时添加一列,可以使用Add 方法。如果首先声明一个变量,并将新对象赋给该变量,就可以用简明的代码设置各种属性。

Private Sub AddColumn()

' 在最右边的位置添加一列。然后设置其Visible、Width、

' Caption以及Alignment 属性。DataField 属性则指定

' 该列将绑定到哪一个字段。

Dim c As Column

Set c = DataGrid1.Columns.Add(DataGrid1.Columns.Count)

With c

.Visible = True

.Width = 1000

.Caption = "我的新列"

.DataField = Adodc1.Recordset.Fields("ProductName").Name

.Alignment = dbgRight

End With

End Sub

可以使用方法来删除任意一列。请确保使用ColIndex 参数来指定要删除的列。下面的代码将删除被单击的列。

Private Sub DataGrid1_HeadClick(ByVal ColIndex As Integer)

DataGrid1.Columns.Remove ColIndex

End Sub

隐藏一列

通过将Visible 属性设置为False,可以隐藏任意一列。当想要限制用户可以查看或编辑的列时这一功能特别有用。下面的示例在Columns 集合中循环,隐藏除少数列之外的所有列。

Private Sub HideColumns()

' 使用DataField 属性来判别正在测试的是哪一列。

' 只显示三列:ProductName、UnitPrice以及

' UnitsInStock。

Dim c As Column

For Each c In DataGrid1.Columns

Select Case c.DataField

Case "ProductName"

c.Visible = True

Case "UnitPrice"

c.Visible = True

Case "UnitsInStock"

c.Visible = True

c.Caption = "In Stock" ' 更改这个列的标头。

Case Else' 隐藏其它所有的列。

c.Visible = False

End Select

Next c

End Sub

操作DataGrid 视图

一个“拆分”的网格使最终用户对相同的数据可以拥有多个视图。例如,假设有一个由十个字段组成的大表。在这种情况下,在控件中察看的记录集将有十列宽,除非窗体非常宽,否则用户将无法同时看见所有列的内容。,而且,假设用户只对第一列和最后一列感兴趣(例如,第一列是名字,最后一列是电话号码)。为了能同时看到在两端的列(不重新安排列的顺序),可以对网格进行拆分。

创建一个Split 对象

在设计时,可以创建一个拆分,具体步骤是:右键单击网格,单击“编辑”,再单击右键,然后单击“拆分”。通过右键单击该控件,并单击“属性”来显示“属性页”对话框,可以编辑这个拆分。可以使用“拆分”选项卡来自定义拆分。要删除一个拆分,右键单击该拆分,并单击“删除”。

在运行时,最终用户也可以通过单击位于这个网格控件的左下边的右边的选项卡,以手工方式来拆分该网格(除非不允许这个操作),如下图所示:

默认情况下,DataGrid 控件包含一个Split 对象。防止最终用户添加拆分的代码为:

DataGrid1.Splits(0).AllowSizing = False

在程序中添加和删除拆分

DataGrid 控件包含一个Split 对象的集合。要在程序中添加拆分,可以使用Add 方法,如下所示:

DataGrid1.Splits.Add 1

注意Add 方法需要新的拆分索引作为其参数。要添加一个拆分,应将这个索引参数设置为Splits 集合的Count 属性值。

使用Split 集合的Add 方法,可以在程序中按照实际需要添加拆分。由于添加多于两个以上的拆分将使网格很难使用,可以使用该集合的Count 属性来限制拆分的数目。

If DataGrid1.Splits.Count < 3 Then ' 添加一个拆分。

DataGrid1.Splits.Add DataGrid1.Splits.Count

End If

使拆分同步

当拆分多于一个时,可能希望控制这些拆分如何滚动。例如,在一个具有三个拆分的网格中,可以决定只让第一个和第三个拆分同步,而让中间的拆分独立地滚动。要同步任何两个(或多个)拆分,只需将每个Split 对象的ScrollGroup 属性设置为同一个值。

' 使第一个和第三个Split 对象同步。

With DataGrid1

.Splits(0)

.ScrollGroup = 1

.Splits(1).ScrollGroup = 2

.Splits(2).ScrollGroup = 1

End With

通过设置Scrollbars 属性,使同步的拆分组只显示一个滚卷条,从而进一步自定义拆分的外观。

控制Tab 键和箭头键的行为

使用WrapCellPointer、TabAcrossSplits以及TabAction 属性,可以决定当最终用户按下tab 键或箭头键时网格的行为。

在这三个属性中,TabAction 属性级别最高,它决定WrapCellPointer 和TabAcrossSplits 这两个属性是否能生效。TabAction 有三个设置值:ControlNavigation、Column Navigation 和Grid Navigation。当该属性设置为ControlNavigation 时,按Tab 键根据TabIndex 将焦点切换到下一个控件。这一设置优先于WrapCellPointer 和TabAcrossSplits。

WrapCellPointer 属性决定在任何单个的拆分中tab 键和箭头键的行为。如果该属性设置为True,且当前单元位于最后一列,这时最终用户按tab 键则使第一列的下一行变成当前的单元。不过,如果当前单元位于最后一行的最后一列时,这时就没有地方可以“换行”。

TabAcrossSplits 属性决定当网格中存在两个或多个拆分时tab 和箭头键的行为。如果该属性设置为True,且当前单元位于任何一个拆分的最后一列,则按Tab或箭头键将使当前单元“跳” 到下一个拆分的第一列。当前单元仍保持相同的行位置。

注意如果WrapCellPointer 和TabAcrossSplits 属性都设置为True,则只有当前单元位于最后一个拆分的最后一列时才会换行。这时当前单元将换到第一个拆分的第一列中的下一行。

自定义列集合

每一个Split 对象都有一个Columns 属性,允许用户来操作一个Column对象的集合。通过这样做,可以更改每个Split 对象的外观。例如,可以用一个拆分包含显示姓氏字段和名字字段的两个列,而第二个拆分则显示电话

字段和地址字段。要实现这一目标,需要将其它的每一列的Visible 属性设置为False,如下所示:

' 枚举Columns 集合,对每一个Column 对象的DataField 属性

' 进行测试。如果测试失败,则隐藏这一列。

Dim i As Integer

' 隐藏除ProductName 列之外的所有列。

For i = 0 To DataGrid1.Splits(0).Columns.Count - 1

If DataGrid1.Splits(0).Columns(i).DataField <> "ProductName" Then

DataGrid1.Splits(0).Columns(i).Visible = False

End If

Next i

' 隐藏除UnitPrice 列之外的所有列。

For i = 0 To DataGrid1.Splits(0).Columns.Count - 1

If DataGrid1.Splits(1).Columns(i).DataField <> "UnitPrice" Then

DataGrid1.Splits(1).Columns(i).Visible = False

End If

Next I

使用Bookmarks 和SelBookmarks 跟踪记录

Bookmarks 和SelBookmarks 提供了标记记录的一种手段。当编写应用程序中的特定功能(诸如允许最终用户手工地选择多个不相邻的记录,进行所

VB SQL编程基础教程

https://www.wendangku.net/doc/507501971.html,数据库编程基础教程 罗珊 众所周知,https://www.wendangku.net/doc/507501971.html,自身并不具备对数据库进行操作的功能,它对数据库 的处理是通过.NET FrameWork SDK中面向数据库编程的类库和微软的MDAC来实现的。其中,https://www.wendangku.net/doc/507501971.html,又是.NET FrameWork SDK中重要的 组成部分。要了解https://www.wendangku.net/doc/507501971.html,的数据库编程,首先要明白https://www.wendangku.net/doc/507501971.html,的工作原理以及相关的对象、方法、属性。本文将结合具体实例为你简单介绍https://www.wendangku.net/doc/507501971.html,数据库访问对象以及https://www.wendangku.net/doc/507501971.html,数据库编程基本方法。 一、https://www.wendangku.net/doc/507501971.html,数据库访问对象 (一)https://www.wendangku.net/doc/507501971.html,简介 https://www.wendangku.net/doc/507501971.html,是由微软Microsoft ActiveX Data Object(ADO)升级发展而来的。是在.NET中创建分布式数据共享程序的开发接口。https://www.wendangku.net/doc/507501971.html,的数据存取API提供两种数据访问方式,分别用来识别并处理两种类型的数据源,即SQL Server7.0(及更高的版本)和可以通过OLE DB进行访问的其他数据源。为此https://www.wendangku.net/doc/507501971.html,中包含了两个类库,System.Data.SQL库可以直接连接到SQL Server的数据,System.Data.ADO库可以用于其他通过OLE DB进行访问的数据源。如Access数据。 (二)https://www.wendangku.net/doc/507501971.html,的名称空间

https://www.wendangku.net/doc/507501971.html,是围绕System.Data基本名称空间设计,其他名称空间都是从System.Data派生而来。它们使得https://www.wendangku.net/doc/507501971.html,不仅访问DataBase中的数据,而且可以访问支持OLE DB的数据源。 当我们讨论https://www.wendangku.net/doc/507501971.html,时,实际讨论的是System.Data和System.Data.OleDb 名称空间。这两个空间的所有类几乎都可以支持所有类型的数据源中的数据。这里我们讨论与后文实例有关的类。即OleDbconnection、OleDbDataAdapter、DataSet和DataView。 上面列举的类中没有OleDb前缀的,派生自System.Data空间,有此前缀的派生自System.Data.OleDb空间。在使用中,如果要引用OleDb前缀的类,必须导入System.Data.OleDb名称空间。语法如下: Imports System.Data.OleDb 使用没有此前缀的类必须导入System.Data名称空间。语法如下:Imports System.Data 1.OleDbConnection类 OleDbConnection类提供了一个数据源连接。这个类的构造函数接受一个可选参数,称为连接字符串。 (1)连接字符串: 连接字符串本身由下表中列出的参数构成。(图) 我们来看一下如何在连接字符串上使用参数来初始化一个连接对象。

vc++中使用ado方式操作access数据库

vc++中使用ado方式操作access数据库ADO(ActiveX Data Object)是Microsoft数据库应用程序开发的新接口,是建立在OLE DB之上的高层数据库访问技术,即使你对OLE DB,COM不了解也能轻松对付ADO,因为它非常简单易用,甚至比你以往所接触的ODBC API、DAO、RDO都要容易使用,并不失灵活性。本文详细地介绍在Visual C++开发环境下如何使用ADO来进行数据库应用程序开发,并给出示例代码。为了使读者朋友都能测试本例提供的代码,我们采用Access数据库,您可以直接在我们提供的示例代码中找到这个test.mdb。程序编译运行后的效果如图一所示 图一、ADO操作ACESS数据库的界面效果图 一、实现方法 万事开头难,任何一种新技术对于初学者来说最重要的还是"入门",掌握其要点。让我们来看看ADO数据库开发的基本流程吧!它的基本步骤如下: (1)初始化COM库,引入ADO库定义文件 (2)用Connection对象连接数据库 (3)利用建立好的连接,通过Connection、Command对象执行SQL命令,或利用Recordset对象取得结果记录集进行查询、处理。 (4)使用完毕后关闭连接释放对象。 下面我们将详细介绍上述步骤并给出相关代码。 1、COM库的初始化 我们可以使用AfxOleInit()来初始化COM库,这项工作通常在CWinApp::InitInstance()的重载函数中完成,请看如下代码: BOOL CADOTest1App::InitInstance() { AfxOleInit(); ...... } 2、用#import指令引入ADO类型库 为了引入ADO类型库,需要在项目的stdafx.h文件中加入如下语句:

vb连接ACCESS数据库实例

vb连接ACCESS数据库实例 下面给你一个用ADO的代码链接的实例:(ACCESS 2003) 首先在工程中点击【工程】-【引用】,在打开的对话框选择Microsoft AxtiveX Data Objects 2.8 Library 勾选,然后定义二个对象: Dim conn As New ADODB.Connection, rs As New ADODB.Recordset 其中conn是数据库链接对象,rs是数据记录集对象 那么,下面就是利用SQL语句链接数据库了: conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=F:\library\1.mdb;Jet OLEDB:Database Password=" strSQL = "SELECT * FROM 数据库中的表" rs.Open strSQL, conn, 3, 3 至此数据库已经链接成功,并且已经加载了记录集,下面你就可以进行数据操作了,注意,在数据库操作完成后,千万别忘记关闭记录集和数据库链接对象: rs.Close conn.Close '首先,工具->引用->选中Microsoft ActiveX Data Objects 2.X Library '必须选中,否则下面代码不会起作用!(以下链接数据库之方式,不需要使用ADODB控件,仅需代码即可) Public Conn As New ADODB.Connection Public Rs As New ADODB.Recordset Public Cnt As Integer '这个Cnt是用来表示数据库数据总量的,对链接过程无关 '连接数据库的代码段 Conn.CursorLocation = adUseClient '以Conn为链接名建立链接,这里是设置数据游标(客户端数据游标),即设定读取数据库数据之方式(一行一行地读) Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=False;Data Source=" & App.Path & "\test.mdb" '自己改动一下上面的路径和文件名即可,其他的代码你不理解照粘贴无妨 If Rs.State <> adStateClosed Then Rs.Close Rs.Open "SELECT 铺名, 上月读数, 本月读数, 实用度数, 铺位数, 首层面积, 非经营层 面积, 欠费明细, 欠费金额FROM data WHERE 首层面积is not null and 非经营层面积 is not null;", Conn, adOpenKeyset, adLockPessimistic Cnt = Rs.RecordCount '关闭数据库链接(一般放到子过程结束处,关闭数据库链接) Rs.Close Conn.Close Set Rs = Nothing

直接通过ADO操作ACCESS数据库

准备工作 (1)、引入ADO类 (2)、初始化COM (3)#import 包含后就可以用3个智能指针了:_ConnectionPtr、_RecordsetPtr和_CommandPtr 1.连接和关闭数据库 (1)连接 (2)、关闭

(3)、设置连接时间 2.打开一个结果集 (1)打开,首先创建一个_RecordsetPtr实例,然后调用Open()得到一条SQL语句的执行结果 (2)关闭结果集 3.操作一个结果集 (1)、遍历(读取) a)、用pRecordset->adoEOF来判断数据库指针是否已经移到结果集的末尾了;m_pRecordset->BOF判断是否在第一条记录前面:

b)、取得一个字段的值的办法有两种办法 一是 二是 (2)、添加 1.调用m_pRecordset->AddNew(); 2.调用m_pRecordset->PutCollect();给每个字段赋值 3.调用m_pRecordset->Update();确认 (3)、修改 (4)、删除 a)、把记录指针移动到要删除的记录上,然后调用 4.直接执行SQL语句,除了要用到结果集其余的大部分功能都可以直接用SQL 语言实现 (1)、用_CommandPtr和_RecordsetPtr配合

(2)、直接用_ConnectionPtr执行SQL语句 其中CommandText是命令字串,通常是SQL命令。 参数RecordsAffected是操作完成后所影响的行数, 参数Options表示CommandText中内容的类型,Options可以取如下值之一: ?adCmdText:表明CommandText是文本命令 ?adCmdTable:表明CommandText是一个表名 ?adCmdProc:表明CommandText是一个存储过程 ?adCmdUnknown:未知 5.调用存储过程 (1)、利用_CommandPtr (2)、直接用_ConnectionPtr直接调用(见4.(2)) 6.遍历数据库中的所有表名

VB使用ADODB操作数据库

VB使用ADODB操作数据库 Dim conn As New ADODB.Connection ’创建一个 Connection 实例,在这里使用New等于将Dim和Set合并为一段代码执行 Dim rs As ADODB.Recordset ’创建一个 Recordset 实例,不使用New 是因为,经常需要重复使用Set,因此没必要在这里使用 Dim CnStr As String, Sql As String ’创建两个字符串变量分别存放两个集合的SQL语句代码段 1、装载数据库(不属于Recordset集合) ============= Dim FileNamw$, DbIp$, DbName$, DbUser$, DbPw$ ’以上5个字符串变量分别表示文件路径和文件名、数据库地址、数据库名、数据操作员用户名、操作员密码 FileName = App.Path & "\’数据库名’" DbIp = "数据库地址" DbName = "数据库名" DbUser = "数据操作员用户名" DbPw = "操作员密码" ’以上变量根据数据库类型的不同而不同,有可能只需要1至两个变量 ’1)连接Access数据库: ’------------------- CnStr = "PROVIDER=microsoft.jet.oledb.3.51;persist security info =false;data source=" & FileNa me & ";Jet OLEDB:Database Password=" & DbPw ’2)连接Oracle数据库: ’------------------- CnStr = "PROVIDER=MSDAORA.1;Password=" & DbPw & ";User ID=" & DbUser & ";Data S ource=" & FileName & ";Persist Security Info=True" ’其中: ’PASSWORD:密码 ’User ID: 用户号 ’Data Source: 数据库名 ’Persist Security Info: ’Provider: ’3)连接VF的DBF库: ’---------------- CnStr = "PROVIDER=MSDASQL.1;Persist Security Info=False;Driver={Microsoft Visual FoxPr

VisualStudio2017中使用ADO访问数据库的实例

Visual Studio 2017 使用ADO访问数据库的实例 Visual Studio 2017 version 以Visual Studio 2015 和后续的Microsoft Visual Studio 更新中的进展为基础构建而成,为开发团队

提供需要的解决方案,使其接纳这种转变并开发和交付利用下一波Windows 平台创新(Windows 10) 的新式应用程序,同时在所有Microsoft 平台上支持多种设备和服务。 支持Windows 10 App 开发 敏捷项目管理(Agile Portfolio Management) 版本控制 轻量代码注释(lightweight code commenting) 编程过程 Visual Studio 2017 预览版提供的工具集非常适合生成利用下一波Windows 平台创新(Windows 10) 的新式应用程序,同时在所有Microsoft 平台上支持设备和服务。支持在Windows 10 中开发Windows 应用商店应用程序,具体表现在对工具、控件和模板进行了许多更新、对于XAML 应用程序支持新近提出的编码UI 测试、用于XAML 和HTML 应用程序的UI 响应能力分析器和能耗探查器、增强了用于HTML 应用程序的内存探查工具以及改进了与Windows 应用商店的集成。

Visual Studio 2017 预览版进行了大量改进,可帮助您在编码时提高工作效率并集中精力。某些功能首先在Visual Studio Power Tools 扩展中以试验性质出现,经过改进后才纳入到Visual Studio 中。新版本中内置了多种提高工作效率的功能,如自动补全方括号、使用快捷键移动整行或整块的代码以及行内导航。此外,Visual Studio 2017 预览版的团队资源管理器增强了主页设计,可以更简便地导航到团队协作功能,并可取消停靠“挂起更改”和“生成”,使其显示在一个单独的窗口中。 在处理大型代码文件时,可能难以了解当前所处的位置。在Visual Studio 2017 预览版中,可轻松地在两种模式之间切换滚动条的行为。在栏模式中,可更直接地查看脱字号位置等注释、更改所在位置和跟踪错误。在图模式下,滚动条显示源代码的实时预览,而将鼠标悬停

VB+数据库编程之+ADO+连接数据库实例

VB 数据库编程之 ADO 连接数据库实例 这里先说说ADO的ACCESS数据库连接吧,两种。 1.ADO控件连接 “工程”菜单→“部件...”:Microsoft ADO Data Control 6.0 (SP6) (OLEDB) 并将Adodc数据控件绘入窗体。 右击Adodc数据控件→属性→使用连接字符串→生成→Microsoft Jet 4.0 OLE DB Provider→数据位置→找到要连接的ACCESS数据库文件…… Adodc数据控件的RecordSource属性为“2 - adcmdTable”和你要连接的表名。 控件的引用实例如下: '组合框(Combo)控件列表用某字段数据记录填充范例 '在窗体Load事件或Combo的相关事件中写入 '循环1到记录总数 For i = 1 To Adodc1.Recordset.RecordCount '如果不在记录集结尾则 If Not Adodc1.Recordset.EOF Then '组合框增加一行:“姓名”字段的值 Combo1.AddItem Adodc1.Recordset.Fields("姓名").Value '记录指针向后一个 Adodc1.Recordset.Movenext End If Next i 2.ADO代码连接 通用声明 Dim cn As New ADODB.Connection Dim rs As New ADODB.Recordset Dim cmd As New https://www.wendangku.net/doc/507501971.html,mand Private Sub Form_Load() '实例化Connection对象 Set cn = New ADODB.Connection cn.CursorLocation = adUseClient cn.Open "Provider=Microsoft.jet.OLEDB.4.0;Data Source=" & App.Path & "\personnel.mdb;" 'Recordset对象 Set rs = New ADODB.Recordset rs.Open "职工信息", cn, adOpenDynamic, adLockOptimistic

VC++使用ADO开发ACCESS数据库

VC++使用ADO开发ACCESS数据库 本文通过实例演示如何在VC++中使用ADO进行ACCESS数据库编程,并对涉及到的几个概念进行详细解释。 本文不对ADO和ACCESS的基本概念进行详细解释,主要包括以下内容: 第一部分 ADO和ADOX到底是什么,二者的作用和区别建立数据库 第二部分 ADOX创建ACCESS数据库 第三部分ADO创建ACCESS数据库的表 第四部分使用_ConnectionPtr接口开发ACCESS数据库 第五部分使用_RecordsetPtr接口开发ACCESS数据库 第一部分ADO和ADOX到底是什么,二者的作用和区别 ADO是Microsoft 最新推出的数据库访问的高层软件接口。它和Microsoft 以前的数据库访问接口DAO、RDO相比具有更大的灵活性,使用也更方便,开发效率大为提高。 ADOX是核心ADO对象的扩展库。它提供的附加对象可用于创建、修改和删除模式对象,如表和过程。要使用ADOX,则应建立对ADOX类型库的引用。ADOX 库文件名为 Msadox.dll。 通俗地讲,ADO是访问数据库的一种接口,可以使用它方便地进行数据库编程。而ADOX是微软对ADO功能的扩展,比如:可以ADOX创建数据库(而ADO 没有创建数据库的功能)。 第二部分ADOX创建ACCESS数据库 用ADOX创建access数据库方法很简单,只需要创建一个Catalog对象,然后调用它的Create方法就可以了。 例程ADOXCreateDatabase演示如何使用ADOX创建一个ACCESS数据库。 打开VC++ 6.0,新建一个基于对话框的工程ADOXCreateDatabase。在对话框IDD_ADOXCREATEDATABASE_DIALOG中添加一个编辑框IDC_DBNAME和一个按钮IDC_BTN_CREATE,编辑框用以输入数据库名称。 使用ClassWizard给编辑框创建一个CString变量m_dbName。 双击IDC_BTN_CREATE按钮,并编辑OnBtnCreate()函数如下: void CADOXCreateDatabaseDlg::OnBtnCreate() { //使输入到编辑框IDC_DBNAME的内容更新到m_dbName变量中 UpdateData(TRUE); CString str; str="d:\\"+m_dbName+".mdb"; //检查该数据库是否已经存在,如果该数据库已经存在,弹出消息框,返回//使用API函数PathFileExists()检查路径文件是否存在 //请注意:为了使用API函数PathFileExists(),需要加入

(完整版)vb连接access数据库及数据读写操作

ACCESS数据库和VB的连接 Edited by Ryan 2013 1、建立Access数据库 2、启动VB,建立标准EXE 图1 3、添加ActiveX控件 鼠标指向任意VB控件,单击右键,选择“部件(O)”,出现图3所示界面 图2

图3 选择部件“Microsoft ADO Data Control 6.0 (OLEDB)”,出现如图4所示控件 图4

4、添加控件Adodc 图5 4、在控件Adodc上添加数据源 鼠标指向控件Adodc1,单击右键,选择“ADODC 属性”,弹出如图7所示界面 图6

图7 单击“生成(U). . .”,弹出如图8所示界面 图8 选择“Microsoft Jet 4.0 OLE DB Provider”,单击“下一步(N) >>”,弹出如图9所示界面

图9 单击“. . .”,添加数据源(第一步所建Access 数据库),如图10所示 图10 单击“测试连接(T)”,出现提示框,如图11所示 图11 之后点击“确定”,退回到如图12所示界面

图12 单击“记录源”,弹出如图13所示界面 图13 在“命令类型”下,选择“1 - adCmdText”,在“命令文本(SQL)”下,输入“Select * from test1”,最后单击“应用”,“确定”即可 之后,进入程序书写部分 程序部分需要注意接头形式及简单例子如下: Private Sub Command1_Click() ‘VB按钮控件 Dim mydb As New ADODB.Connection ‘定义新的数据库连接 mydb.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\read database\test1\test1.mdb" ‘数据库绝对路径 Dim rs As New ADODB.Recordset ‘定义数据库的一个对象 mydb.Open ‘打开数据库 rs.Open "select * from test1", mydb, 3, 3 ‘打开数据库中的表test1

ado连接 access 数据库

ado连接 access 数据库.txt-//自私,让我们只看见自己却容不下别人。如果发短信给你喜欢的人,他不回,不要再发。看着你的相片,我就特冲动的想P成黑白挂墙上!有时,不是世界太虚伪,只是,我们太天真。直接通过ADO操作Access数据库 作者:徐景周 下载示例源码 上次经过<直接通过ODBC读、写Excel表格文件>和<直接通过DAO读、写Access 文件>两篇文章,给大家介绍了ODBC和DAO两种数据库访问技术的基本使用方法,这次要给大家介绍的是ADO数据库访问技术的使用方法。ADO(Active Data Object,活动数据对象)实际上是一种基于COM(组件对象模型)中的自动化接口(IDispatch)技术,并以OLE DB(对象连接和镶入的数据库)为基础,经过OLE DB精心包装后的数据库访问技术,利用它可以快速的创建数据库应用程序。 ADO提供了一组非常简单,将一般通用的数据访问细节进行封装的对象。由于ODBC数据源也提供了一般的OLE DB Privider,所以ADO不仅可以应用自身的OLE DB Privider,而且还可以应用所有的ODBC驱动程序。关于OLE DB和ADO的其它详细情况,读者可以自行查阅相关书籍或MSDN,这里就不一一说明了。让我们直接步入主题,如何掌握ADO这种数据库访问技术。ADO的操作方法和前面讲过的DAO的操作在很多方面存在相似之处,在这里,笔者为了更有效的说明它的使用方法,用VC6.0做了一个示例程序(AdoRWAccess),这个示例程序可以直接通过ADO来操作Access数据库,示例程序的运行效果如下图所示: 在示例程序中我们仍采用原库结构,数据库名Demo.mdb,库内表名DemoTable,表内字段名为Name(姓名)和Age(年龄)的两个字段,来构造示例程序操作所需的Access数据库,这也和上两篇文章的示例源码中的库结构相兼容。 下面让我们看看ADO数据库访问技术使用的基本步骤及方法: 首先,要用#import语句来引用支持ADO的组件类型库(*.tlb),其中类型库可以作为可执行程序(DLL、EXE等)的一部分被定位在其自身程序中的附属资源里,如:被定位在msado15.dll的附属资源中,只需要直接用#import引用它既可。可以直接在Stdafx.h文件中加入下面语句来实现: #import "c:\program files\common files\system\ado\msado15.dll" \ no_namespace \

第七讲 VB访问SQL Server2000数据库的方法

第七讲 VB访问SQL Server2000数据库的方法 一、ODBC数据源设置 1、ODBC简介 ODBC Open DatabaseConnectivity开放式数据库互连)是Mircosoft公司有关数据库的一个组成部分,它建立了一组规范,并提供了一组对数据库访问的标准API Application应用程序编程接口)。这些API利用SQL来完成大部分的任务。ODBC本身提供对SQL语言的支持,用户可以直接将SQL送给ODBC一个基于ODBC的应用程序对数据库操作不依赖于任何DBMS,不直接与DBMS打交道,所有数据库操作由ODBC驱动程序完成。 2、ODBC数据源的创建(建立ODBC数据源) 前台系统Windows 2000 professional系统,后台Windows 2000 Server系统。以Windows 2000 professional为例: (1)单击“开始”/设置/控制面板/管理工具/数据源ODBC,打开“ODBC数据源管理器”,选择“用户DSN or 系统DSN”,单击【添加】按钮,打开“创建用户数据源”对话框,选择“SQL Server”,单击【完成】按钮。

(2)打开“创建新的数据源到SQL Server”窗口: ○1你想用什么名称命名数据源:在名称框中输入xn。 ○2服务器:为网络中数据库服务器(默认是本地服务器Local,可选远程服务器IP)。 ○3登陆ID:xn密码:xn(取决于安装SQL时所指定的密码)。特别注意此处为确保数据库安全起见,数据库管理员可以给用户指定一个用户名及密码。这里为简便起见使用管理员用户名及密码。 ○4更改数据库为:aa(所要使用的数据库)。

ADO方法对Access数据库操作

一、Access数据库创建 新建一个Accesss数据库文件,然后文件--新建--空白桌面数据库,弹出下面的窗口。 点击那个小文件夹的图标,出现下面的窗口,保存类型选择2002—2003格 式,文件名,然后确定,创建。 然后在设计视图中设计数据库成下面的样式。

再在数据库中增添一些信息如下: 然后保存就可以了,记得注意一下把“表1”这个名字改过来啊。 二、在VC++中建立一个基于对话框的工程(在这里取名为sjtest) 1、在FileView中的Header Files的头文件中导入文件。(代码如下) #import "C:\Program Files\Common Files\System\ado\" no_namespace \ rename("EOF","adoEOF")rename("BOF","adoBOF")

2、在主窗口类声明两个变量。(在中) 代码:(这两个是智能指针,百度一下哈)_ConnectionPtr m_pConnection; _RecordsetPtr m_pRecordset;

3、在对话框中添加一个ListControl控件,并且将其属性中的Style设置如图 4、为list control捆绑变量m_Grid(查看—建立类向导—Add Member variable

name) 5、在CSjtestApp应用程序类中的初始化函数InitInstance()中初始化COM环境在上面添加: ::CoInitialize(NULL); 并在return之前释放:添加代码如下: ::CoUninitialize();

VB数据库操作实例

VB数据库操作实例 工具/原料 VB数据库操作对很多初学者朋友感到比较吃力,目前教材中的实例对数据库操作都比较单一,很多朋友提议我做一个包括浏览、添加、修改、删除功能的数据库操作实例,下面这个实例就是一个这样的数据库操作实例。 步骤/方法 1. 1 《书库管理系统》是一个最简单的数据库操作实例,它包括浏览、添加、修改、删除功能的数据库操作,使用数据链接控件Adodc链接数据库、数据显示控件MSHFlexGrid显示数据库中的记录。 在新建工程时工具箱中是没有Adodc控件和MSHFlexGrid控件的,我们必须点击菜单中的【工程】-【部件】,在对话框中勾选“Microsoft ADO Data Control 6.0 (SP6)”和“Microsoft Hierarchical FlexGrid Control 6.0 (SP4)”,最后点击【确定】,这样Adodc控件和MSHFlexGrid控件就已经放置在工具箱中了。 其中Adodc控件的ConnectionString属性值是:"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=家庭书架.mdb;Persist Security Info=False",它设置链接了“家庭书架.mdb”这个Access数据库,RecordSourc属性值是:"select 图书登记表.ID,图书登记表.名称,图书登记表.

书号,图书登记表.作者,图书登记表.出版社,图书登记表.出借状态,出借记录.借书人,出借记录.电话,出借记录.地址,图书登记表.备注,图书登记表.出借记录from 图书登记表,出借记录where 图书登记表.ID=出借记录.zhuID ORDER BY 图书登记表.ID",因为在“家庭书架.mdb”数据库中包含"图书登记表"和"出借记录"二个数据表,这是多表链接的典型的SQL语句。Adodc 的这二个属性值在VB的属性窗口进行编辑,你可以将上述属性值直接输入到相应的属性中,设置Visible的值为False,目的是在运行中不显示这个控件,其他属性默认值即可。 MSHFlexGrid控件的名称我们修改为MS1,它的属性设置稍稍比较麻烦:首先将它的DataSource属性在属性窗口设置为"Adodc1"; 然后在对象窗口右击控件,在下拉菜单中点击【属性】,在“通用”标签中修改行为3,修改列为11,修改固定行为0,修改固定列为0,如果数据链接没有问题,在属性的“带区”标签中可以看到列标题和列名称已经设置了,其他属性页的属性可以容许默认值,中点击【确定】即可。 另外在属性窗口设置MSHFlexGrid控件的BackColorBkg属性为&H00FFE0E0&,这个属性是控件底色的设置,然后设置BackColorFixed属性为&H00C0FFFF&,这个属性是控件数据显示标题的底色。其他默认值即可。 最后放置三个按钮,一个标签,三个Frame控件,在Frame1、Frame2、Frame3控件中分别放置9个标签(数组),8个文本框,一个下拉选择框,一个按钮,在Frame2、Frame3控件中分别放置一个标签,设置这个标签的Visible值为False,其他设置参考下图:设置和调整控件如上图后,设置数据库,在

VC++下使用ADO访问Access数据库完整篇

VC++下使用ADO访问Access数据库完整篇 2009年10月18 | 分类: 编程开发 | 3 条评论 | 标签: Visual Studio 这次先整理一下ADO的全套流程方便有类似需求的网友参考。实际上,根据天缘的经验,接口类编程只需要遵守人家的约定就可以了,很多做软件的网友也都是忙的很,没有时间一一深究。 1、在StdAfx.h中引入ADO类支持 方法是在StdAfx.h中增加下面两句话: #include //如果需要则添加本句 #import "c:\program files\common files\system\ado\msado15.dll" no_namespace rename ("EOF", "adoEOF") 2、初始化COM环境 在MFC中可以用AfxOleInit()或CoInitialize(NULL),该函数一般放在InitInstance()历程里。 非MFC使用用CoInitialize(NULL)。 卸载COM环境使用CoUnInitialize(),一般放在主程序的析构函数里。 这样我们就会三个指针可用:_ConnectionPtr、_RecordsetPtr和_CommandPtr,分别代表: _ConnectionPtr接口返回一个记录集或一个空指针,通常使用它来创建一个数据连接或执行一条不返回任何结果的SQL语句,对于要返回记录的操作通常使用_RecordserPtr来实现。而用 _ConnectionPtr操作时要想得到记录条数得遍历所有记录,用_RecordserPtr则不需要。 _RecordsetPtr指针是一个记录集对象。可以对记录集提供了更多的控制功能。它不一定要使用一个已经创建的数据连接,可以用一个连接串代替连接指针赋给 _RecordsetPtr的connection成员变量,让它自己创建数据连接。如果你要使用多个记录集,最好的方法是使用已经创建了数据库连接的全局 _ConnectionPtr接口,然后使用_RecordsetPtr执行存储过程和SQL语句。 _CommandPtr指针接口返回一个记录集。CommandPtr提供了一种简单方法来执行返回记录集的存储过程和SQL语句。可以利用全局 _ConnectionPtr接口,也可以在_CommandPtr接口里直接使用连接串。一次或少量数据库访问操作,一般是

VB数据库编程实用源码

使用ADO编程模型需添加ADO对象类库的“引用”----“Microsoft ActiveX Data Objects 2.x Library” ADO之VB数据库操作主要包括读、写、修改及删除等操作,不论是进行什么数据库操作都必须首先连接到数据库。 一、连接到数据库 1、连接到SQL数据库: 通过ADO的Connection对象可实现VB与SQL数据库的连接。一般方法如下: Dim cnn As New ADODB.Connection …创建Connection对象cnn,关键字new用于创建新对象 cnn.ConnectionString = "Provider=SQLOLEDB.1;Password=密码;User ID=用户名;Initial Catalog=SQL数据库文件;Data Source= localhost;" '指定提供者,设置数据源 cnn.Open …打开到数据库的连接 …….. cnn.Close …关闭到数据库的连接 或者: Dim cnn As New ADODB.Connection …创建Connection对象cnn,关键字new用于创建新对象 cnn.Open "Provider=SQLOLEDB.1;Password=密码;User ID=用户名;Initial Catalog=SQL数据库文件;Data Source= localhost;" …打开到数据库的连接 …….. cnn.Close …关闭到数据库的连接 2、连接到ACCESS数据库: 通过ADO的Connection对象可实现VB与ACCESS数据库的连接。一般方法如下: Dim cnn As New ADODB.Connection …创建Connection对象cnn,关键字new用于创建新对象 cnn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=ACCESS数据库文件.MDB" '指定提供者,设置数据源 cnn.Open …打开到数据库的连接 …….. cnn.Close …关闭到数据库的连接 或者: Dim cnn As New ADODB.Connection …创建Connection对象cnn,关键字new用于创建新对象 cnn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=ACCESS数据库文 件.MDB" …打开到数据库的连接

VB利用ADO控件连接access数据库

VB利用ADO控件连接access数据库今天告诉大家VB利用ADO控件连接access数据库的两种方法: 一种是在 adodc1的属性里设置数据库文件的路径,这种方法的优点是简单易操作,缺点是,当源文件换了地方后,要重新设置数据库的路径,否则连接不上数据库了。 一种是用代码设置数据库的路径,这种方法的优点就是只要源文件和数据库在同一文件夹下,无论移动到哪里都能连接上。 如果没有建立好数据库的话,先建立一个数据库,然后建立一个表比如我们建的表名为message,然后把里面的字段名称和数据类型都按自己的需要设置好.然后保存就可以了. 打开Microsoft Visual Basic6.0 我用的是VB6.0,在需要调用数据库的窗体上加入一个adodc控件,默认名称为:Adodc1。默认的情况下工具栏里是没有这个控件的,可以打开工程---部件(快捷键CTRL+T),去掉只显示选定项的勾,然后勾上Microsoft ADO Data Control(OLEDB),然后确定,工具栏就会多了一个adodc的控件。 第一种方法:设置adodc1的属以连接数据库.在adodc1控件上右键--Adodc属性--使用连接字符串--生成--Microsoft Jet 4.0 OLE DB Provider--下一步--选择或输入数据库名称---找到要连接的数据库后,确定.然后记录源设置属性. 如果要把内容提交到数据库一般使用adCmdTable. 表选择要连接的表。设置完毕后就可以了. 如果我们想把内容提交到数据库.举个例子.. 在窗体建立一个文本框,设置属性中的DataSource为adodc1 DataField为要连接的数据库的字段名。如果数据库中有字段,会让你选择。

VB使用ADODB操作数据库的常用方法

VB使用ADODB操作数据库的常用方法 ADO常用方法 下面是我所掌握的使用ADO对数据库操作的一些常用方法,主要是提供给初学者作为参考,有不对的地方请指正。如有补充不胜荣幸 准备工作 ======== Dim conn As New ADODB.Connection '创建一个 Connection 实例,在这里使用New等 于将Dim和Set合并为一段代码执行 Dim rs As ADODB.Recordset '创建一个 Recordset 实例,不使用New 是因为,经常 需要重复使用Set,因此没必要在这里使用 Dim CnStr As String, Sql As String'创建两个字符串变量分别存放两个集合的SQL语句代码段 1、装载数据库(不属于Recordset集合) ============= Dim FileNamw$, DbIp$, DbName$, DbUser$, DbPw$ '以上5个字符串变量分别表示文件路径和文件名、数据库地址、数据库名、数据操作员用户名、操作员密码 FileName = App.Path & "\'数据库名'" DbIp = "数据库地址" DbName = "数据库名" DbUser = "数据操作员用户名" DbPw = "操作员密码" '以上变量根据数据库类型的不同而不同,有可能只需要1至两个变量 '1)连接Access数据库: '------------------- CnStr = "PROVIDER=microsoft.jet.oledb.3.51;persist security info =false;data so urce=" & FileName & ";Jet OLEDB:Database Password=" & DbPw '2)连接Oracle数据库:

vb连接access数据库常用的方法两种示例

这里以链接access数据库为例。 第一部分就是通过语句链接,第二部分就是通过控件链接一、 通过语句链接数据库,然后把相应得数据赋值给某个文本框就行了。 1、首先定义几个全局变量 Dimcn As NewADODB、Connection Dim rs As New ADODB、Recordset Dim constrAsString 2、给这些变量赋值,方便链接数据库 constr = "Provider=Microsoft、Jet、OLEDB、4、0;"&"DataSource=D:\EffectSolution\科学效应数据库、mdb" 红色部分写您自己得数据库路径。 3、打开数据库 cn、openconstr 打开表 rs、open“select * from 效应表whereid=5“,cn 取字符串并赋值给相应得文本 Text1、text=rs、fields(“效应与现象名称”) Text2、text=rs、fields(“文字解说”) 关闭表 rs、close 关闭数据库 cn、close 注意,最后两步骤一定要有,不然下次打开数据库得时候会提

示出错得,这样得话,在窗口上建立两个文本框就够了。 但就是,在此之前还有一步一定要做, 点"工程"-"引用"-找到"Microsoft ActiveX Data Object2、6 ",如图所 示:

显示得结果如下图所示: 通过与效应表对比发现显示正确。 总体代码如下: Private Sub Form_Load() Dim cn As New ADODB、Connection Dim rs As NewADODB、Recordset Dim constrAsString constr="Provider=Microsoft、Jet、OLEDB、4、0;" &_ "Data Source=D:\EffectSolution\科学效应数据库、mdb" '空格加短下划线表示续行 cn、open constr rs、open "select*from 效应表where id =5", cn Text1、Text = rs、fields("效应与现象名称") Text2、Text = rs、fields("文字解说")

MFC通过ADO操作Access数据库

MFC通过ADO操作Access数据库 我在《VC知识库在线杂志》第十四期和第十五期上曾发表了两篇文章——“直接通过ODBC读、写Excel表格文件”和“直接通过DAO读、写Access文件”,先后给大家介绍了ODBC和DAO两种数据库访问技术的基本使用方法,这次要给大家介绍的是ADO数据库访问技术的使用方法。ADO(Active Data Object,活动数据对象)实际上是一种基于COM(组件对象模型)的自动化接口(IDispatch)技术,并以OLE DB(对象连接和镶入的数据库)为基础,经过OLE DB精心包装后的数据库访问技术,利用它可以快速的创建数据库应用程序。 ADO提供了一组非常简单,将一般通用的数据访问细节进行封装的对象。由于ODBC数据源也提供了一般的OLE DB Privider,所以ADO不仅可以应用自身的OLE DB Privider,而且还可以应用所有的ODBC驱动程序。关于OLE DB和ADO的其它详细情况,读者可以自行查阅相关书籍或MSDN,这里就不一一说明了。让我们直接步入主题:如何掌握ADO这种数据库访问技术。ADO的操作方法和前面讲过的DAO的操作在很多方面存在相似之处,在这里,笔者为了更有效的说明它的使用方法,用VC6.0做了一个示例程序——AdoRWAccess,这个示例程序可以直接通过ADO来操作Access数据库,示例程序的运行效果如下图所示:

在示例程序中我们仍采用原库结构,数据库名Demo.mdb,库内表名DemoTable,表内字段名为Name(姓名)和Age(年龄)的两个字段,来构造示例程序操作所需的Access数据库,这也和上两篇文章的示例源码中的库结构相兼容。 下面让我们看看ADO数据库访问技术使用的基本步骤及方法: 首先,要用#import语句来引用支持ADO的组件类型库(*.tlb),其中类型库可以作为可执行程序(DLL、EXE等)的一部分被定位在其自身程序中的附属资源里,如:被定位在msado15.dll的附属资源中,只需要直接用#import引用它既可。可以直接在Stdafx.h文件中加入下面语句来实现: #import "c:\program files\common files\system\ado\msado15.dll" \ no_namespace \ rename ("EOF", "adoEOF") 其中路径名可以根据自己系统安装的ADO支持文件的路径来自行设定。当编译器遇到#import语句时,它会为引用组件类型库中的接口生成包装类,#import语句实际上相当于执行了API涵数LoadTypeLib()。#import语句会在工程可执行程序输出目录中产生两个文件,分别为*.tlh(类型库头文件)及*.tli(类型库实现文件),它们分别为每一个接口产生智能指针,并为各种接口方法、枚举类型,CLSID等进行声明,创建一系列包装方法。语句no_namespace说明ADO对象不使用命名空间,rename ("EOF", "adoEOF")说明将ADO中结束标志EOF改为adoEOF,以避免和其它库中命名相冲突。 其次,在程序初始过程中需要初始化组件,一般可以用CoInitialize(NULL);来实现,这种方法在结束时要关闭初始化的COM,可以用下面语句CoUnInitialize();来实现。在MFC中还可以采用另一种方法来实现初始化COM,这种方法只需要一条语句便可以自动为我们实现初始化COM和结束时关闭COM 的操作,语句如下所示: AfxOleInit(); 接着,就可以直接使用ADO的操作了。我们经常使用的只是前面用#import 语句引用类型库时,生成的包装类.tlh中声明的智能指针中的三个,它们分别是_ConnectionPtr、_RecordsetPtr和_CommandPtr。下面分别对它们的使用方法进行介绍: 1、_ConnectionPtr智能指针,通常用于打开、关闭一个库连接或用它的Execute

相关文档
相关文档 最新文档