vba - 将数据从表插入到集合 vba 访问
问题描述
我是 VBA 访问的新手,我想做的是将表中的数据放入集合中,但是当我这样做并检查集合时,所有行都有我加载的最后一行的数据。
Public Function projectStart() As Collection
Dim cn As New ADODB.connection
Dim rs As New ADODB.Recordset
Set cn = CurrentProject.connection
Dim sqlQuery As String
Set projectStart = New Collection
sqlQuery = "select * from p6projects"
rs.Open sqlQuery, cn
Do Until rs.EOF
Dim cashFlow As New cashFlow
cashFlow.letIdproject = rs!id
cashFlow.letStartDate = rs!startDate
cashFlow.letBlstartdate = rs!blStartDate
projectStart.Add cashFlow
rs.MoveNext
Loop
rs.Close
Set rs = Nothing
cn.Close
Set cn = Nothing
End Function
我正在从一个表中加载 10 行,当我打印它们时,我会看到这个,任何行中的相同数据。
10 2/6/2019 2/6/2019
10 2/6/2019 2/6/2019
10 2/6/2019 2/6/2019
10 2/6/2019 2/6/2019
10 2/6/2019 2/6/2019
10 2/6/2019 2/6/2019
10 2/6/2019 2/6/2019
10 2/6/2019 2/6/2019
10 2/6/2019 2/6/2019
10 2/6/2019 2/6/2019
解决方案
在大多数情况下,当您使用
rst!StartDate
好吧,您正在返回 FIELD 对象。这不是一个值,而是一个实际的 DAO 对象类型的字段。
在“大多数”情况下,如果您要转换为字符串,在大多数情况下,访问会自动为您执行此操作。
但是,集合能够保存字符串,甚至对象类型。因此,在您的代码中,您实际上是在添加对字段对象的引用,而不是值。
所以,你需要这样做:
cashFlow.letIdproject = rs!id.Value
cashFlow.letStartDate = rs!startDate.Value
cashFlow.letBlstartdate = rs!blStartDate.Value
因此,现在您将值保存到集合中,而不是对字段控件的引用。如果您保存对该字段的引用,那么它将是您保存的该字段列引用的所有实例所在的任何行。
编辑:看上面, .value 实际上不应该是必需的。
展示我们在收藏中放置的内容?
这将起作用: cashFlow.letIdproject = rs!ID cashFlow.letStartDate = rs!StartDate cashFlow.letBlstartdate = rs!blStartDate
Dim c As cashFlow
For Each c In projectStart
Debug.Print c.ID, c.StartDate, c.letBlstartDate
下一个
我们的课程模块呢?好吧,我们假设这个类模块名为 cashFlow。
Option Compare Database
Option Explicit
Public letIdproject as long
Public letStartDate as date
Public letBlstartdate as date
您必须提供有关自定义类模块外观的更多信息,但上述代码方法应该有效。
推荐阅读
- database - 在 redis 中搜索与给定模式不匹配的键
- php - 如何更改 PhpSpreadsheet 中保存文件的目录
- vue.js - Vue绑定没有冒号或简写
- javascript - 从 AJAX 调用下载文件
- reactjs - 将子节点从安装点传递到反应元素
- ios - 在收藏视图中列出照片
- javascript - How do I populate values of an JSON object data into a selectbox?
- node.js - 我想读取配置文件
- reactjs - TypeScript - React Context 使用者不会重新渲染主要组件
- c# - 如何通过域名搜索 Active Directory 用户?