Tag: dao

将ADODB循环转换为DAO

嗨,我一直在开发一个vba项目,在这里有很多例子的帮助。 我试图从Excel VBA访问一个MS Access数据库,并导入每个请求的大型数据集(500-100 +行)。 目前,下面的循环使用ADODB,但Range(“”)。Copyfromrecordset行每个请求需要很长的时间大概7秒。 Public Sub BC_Data() Dim cn As New ADODB.Connection, rs As New ADODB.Recordset Dim strCon, SQL As String Dim ID As Integer strCon = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=…\Database.accdb;" cn.Open strCon For i = 0 To n ID = Range("A2").Offset(i, 0).Value SQL = "SELECT [Sales] WHERE [ID] = " & ID & _ […]

在Excel中显示MS-Accesslogging的RTF格式

我想做的事 我有一个Access数据库(C:\ Users \ 289894 \ Desktop \ Database1.accdb)[Table1]的一个字段是[备注]。 该字段是Memo数据types,文本格式设置为rich text格式。 例如,可以将一些logging保存为粗体 ,将一些logging保存为斜体 。 我想从excel文件打开一个连接到这个Access数据库,以读/写入这个富文本字段。 我使用的代码如下: Dim datab As Database Dim rs As Recordset Dim path As String path = "C:\Users\289894\Desktop\Database1.accdb" Set datab = OpenDatabase(path) Set rs = datab.OpenRecordset("SELECT * FROM [Table1]") Debug.Print rs!Memo Range("A1") = rs!Memo 我的问题 这段代码很适合打开连接并读取普通文本字段,但丰富的文本以令人惊讶的方式(对我来说)起作用。 访问中的原始文本是“ aaa ”。 这是粗体字的“aaa”。 运行代码之后,debug.print和Range(“A1”)都将<div><strong>aaa</strong></div>写入其中。 我怎样才能改变我的代码发送格式为好? […]

ADO和DAO之间的区别

这不是一个关于哪个更好的问题,而是关于他们为什么在function上有所不同的问题。 我遇到的问题已经得到处理,但我很好奇为什么这种行为正在发生。 背景 – 使用Excel vba从Access数据库中提取数据。 当用户点击一个button时,一个logging集从Access中被取出,并将各种数据填充到电子表格中。 然后,从另一个查询中提取另一个logging集以填充电子表格的另一部分。 ADO做了什么 – ADO非常适合我的第一个logging集。 但是,我的第二个logging集在Access中查询,运行,并不返回任何行。 如果我在Access中运行这个查询,它会打开(大约3到4秒之后)。 这个查询有多个连接,计算项目,限制和可能的联盟查询(我尝试了很多不同的方式,有/没有联盟等)。 我试着closures并重新打开ado连接。 我试着改变超时值,我甚至使用ADO命令testing了对这个数据的表查询,然后从表中取出(这个工作的方式,但不是最好的情况,因为数据不断变化,而且我不希望每次有人使用此工具时都要运行make table查询)。 所以,我把第二个数据拉到DAO了,看哪,它的工作。 第一个数据是ADO(我通常更喜欢使用),但是现在考虑将其改为DAO,因为我宁愿在代码中使用一种数据访问方法。 那么,有人可以向我解释为什么ADO不会在一个情况下拉取数据,但DAO会? 再一次,这纯粹是为了信息的目的。