找不到可安装的ISAM vba

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

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

我是macros的开始,所以我可能会错过一个简单的观点。 如果是的话,我很抱歉花费你的时间。

谢谢

Cagri

我的VBA代码;

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 

结束小组

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

 "Data Source=<file path>; Extended Properties=""Excel 12.0 Macro; HDR=<YES/NO>""" 

而你的代码应该是:

 "Data Source=" & strWorkbook & "; Extended Properties=""Excel 12.0 Macro; HDR=YES""" 

*请注意,只有您有标题,HDR才会是。