首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >找不到可安装的ISAM

找不到可安装的ISAM
EN

Stack Overflow用户
提问于 2015-05-07 06:39:47
回答 2查看 2.1K关注 0票数 1

我读了许多关于这个问题的文章,但找不到解决问题的办法。我需要做的是使用SQL从活动工作簿中的Sheet1中的表中获取值。当我运行下面的代码时,我得到了“无法找到可安装的ISAM”错误消息。我的连接字符串似乎有问题。

我正在使用Excel 2010。为了解决我的问题,我激活了“MicrosoftWebDataObjects6.1Library”(这是最新版本)。

我是宏的始作俑者,这就是为什么我可能遗漏了一个简单的点。如果是这样的话,我很抱歉浪费了你的时间。

谢谢

卡格里

我的VBA代码;

代码语言:javascript
复制
Sub GC_Button_Click()

Dim Giris_Zamani As Recordset
Dim Cikis_Zamani As Recordset
Dim StrGiris_Zamani As String
Dim StrCikis_Zamani As String
Dim Donem As Integer
Dim Gun As Integer
Dim Personel As String
Dim RowCount As Long
Dim CalismaSaati As Integer

Dim Conn As ADODB.Connection
Dim SQL_Giris As String
Dim SQL_Cikis As String
Dim RowNumber As Integer
Dim DayNumber As Integer
Dim strWorkbook As String

strWorkbook = Application.ActiveWorkbook.FullName
RowCount = Sheets(2).UsedRange.Rows.Count
Sheets(1).Select
Range("A2:A900000").Copy
Sheets(2).Select
Cells(8, 1).Select
ActiveSheet.Paste

Range("A8:A900000").RemoveDuplicates Columns:=Array(1)
Range("A8:A900000").Sort Key1:=Range("A8"), Order1:=xlAscending,    Header:=xlNo

Sheets(2).Select
Donem = Cells(2, 8)

Set Conn = New ADODB.Connection
With Conn
.Provider = "Microsoft.ACE.OLEDB.12.0"
.ConnectionString = "Data Source=" & strWorkbook & "; Extended Properties =  Excel 12.0 Macro; HDR=YES"
.Open
End With

For RowNumber = 8 To RowCount
For DayNumber = 1 To 31

Personel = Cells(RowNumber, 1)
Gun = DayNumber

SQL_Giris = "SELECT [ZAMAN] FROM [Sheet1] WHERE [Personel Adi Soyadi]= '" + Personel + "' AND [Giris / Cikis]='Giris' AND [DÖNEM]=" + CStr(Donem) + " AND [GÜN]=" + CStr(Gun) + ""
SQL_Cikis = "SELECT [ZAMAN] FROM [Sheet1] WHERE [Personel Adi Soyadi]= '" + Personel + "' AND [Giris / Cikis]='Cikis' AND [DÖNEM]=" + CStr(Donem) + " AND [GÜN]=" + CStr(Gun) + ""

Set Giris_Zamani = Conn.Execute(SQL_Giris)
Set Cikis_Zamani = Conn.Execute(SQL_Cikis)

StrGiris_Zamani = Giris_Zamani.Fields(0).Value
StrCikis_Zamani = Cikis_Zamani.Fields(0).Value

CalismaSaati = Hour(TimeValue(StrCikis_Zamani) - TimeValue(StrGiris_Zamani))
Cells(RowNumber, DayNumber + 1).Value = CalismaSaati
Next DayNumber
Next RowNumber

结束子对象

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-05-07 07:24:36

连接字符串的格式不正确。Extended Properties值应该用引号="Excel 12.0 Macro; HDR=YES"括起来,因为这两个设置都是扩展属性的一部分。应该对完整连接字符串进行格式化:

代码语言:javascript
复制
"Data Source=<file path>; Extended Properties=""Excel 12.0 Macro; HDR=<YES/NO>"""

你的代码应该是:

代码语言:javascript
复制
"Data Source=" & strWorkbook & "; Extended Properties=""Excel 12.0 Macro; HDR=YES"""

*注意,只有在有头的情况下,HDR才应该是“是”。

票数 1
EN

Stack Overflow用户

发布于 2022-03-18 11:37:03

在尝试通过Excel连接到MySQL数据库时,通过MySQL 8.0ODBConnector进行连接时,出现了这个错误。在同一个应用程序中,我还使用JET引擎(或ACE -取决于版本)通过我的Excel表发送SQL。因此,我要么连接到Jet/ACE引擎,要么根据应用程序的需要连接到ODBC驱动程序。在我的例子中,结果是连接对象是在这样的调用之间设置的,因此我最终尝试使用以前设置的Jet/ACE连接对象,并尝试与ODBC驱动程序进行新的连接尝试。因此,解决方案非常简单,在本例中:在启动新连接之前,每次都将connection对象设置为空,不管是:

代码语言:javascript
复制
Set ConnDB = Nothing

因此,以后我每次在这里定义一个新的连接对象:

代码语言:javascript
复制
If (ConnDB Is Nothing) Then
  Set ConnDB = New ADODB.Connection
End If
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30093666

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档