65.9K
CodeProject 正在变化。 阅读更多。
Home

使用 DataGrid 和 Data 控件访问 Access 数据库

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.20/5 (10投票s)

2003年1月9日

CPOL

2分钟阅读

viewsIcon

206455

downloadIcon

5576

使用 DataGrid 和 Data 控件访问 Access 数据库

Sample Image - Data.jpg

引言

大家好.. 我写这篇文章是为了回复 CodeProject 讨论区中的 Anonymous 的提问。

Anonymous 写道

朋友们,我编程经验非常少,刚开始一个新项目,这个项目包含一个表单,表单上有两个日历控件。我想知道如何获取数据库中两个日期之间输入的数据,并将其显示在网格中。日期选择是动态的。 任何帮助都将不胜感激。

这个程序并不复杂... 但我认为它对像 Anonymous 朋友这样的 VB6 初学者来说可能很有用。

项目

我使用 Access XP 创建了一个数据库,并将其保存为 Access 97 格式。它包含一个名为 table1 的表。

Table1 有 3 列

  1. ID: 自动编号
  2. Name: 文本 .. 最大长度=50
  3. BirthDate: 日期时间

主表单和控件

frmMain: 主表单...没有什么特别的。

Data: 一个数据控件,具有以下属性

  • Visible=False
  • DatabaseName=”数据库路径”
  • Connect=Access (默认值)

Cal(): 包含 2 个元素的日历控件数组。
(你可以通过将一个控件拖到表单上并复制 它,然后将其粘贴到表单上创建控件数组。)

DBGrid: 一个数据网格控件

  • dataSource=Data

现在... 让我们来看一下每次用户从日历控件中选择新日期时更新数据所需的简单代码。

这是 Cal_AfterUpdate 的代码

Private Sub Cal_AfterUpdate(Index As Integer)
Dim strDate0 As String
Dim strDate1 As String
Dim strSQL As String

strDate0 = Cal(0).Day & "/" & Cal(0).Month & "/" & Cal(0).Year
strDate1 = Cal(1).Day & "/" & Cal(1).Month & "/" & Cal(1).Year

strSQL = "SELECT * FROM table1 WHERE BirthDate Between #" _
        & strDate0 & "# AND #" & strDate1 & "#"

Debug.Print strSQL

Data.RecordSource = strSQL
Data.Refresh

End Sub

这就是所有需要的编码... 感谢数据控件和数据绑定。

工作原理

  1. 我声明了两个 string 变量来保存日期... 我使用日历控件的属性组合它们。
  2. strSQL 是用于让 Jet 引擎(访问数据的组件)知道我们需要哪些数据的查询。
  3. Debug.Print strSQL 是为了调试目的而调用的,这样我就可以检查查询是否形成良好。
  4. strSQL 值分配给数据控件的 RecordSource 属性并刷新数据... 然后我们可以在网格控件中看到提取的结果集。

欢迎提出任何意见。

历史

  • 2003 年 1 月 8 日:初始发布 
© . All rights reserved.