找不到可安装的ISAM vba

时间:2015-05-07 06:39:47

标签: excel vba excel-vba

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

我正在使用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

End Sub

1 个答案:

答案 0 :(得分:0)

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

"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才应为是。