暱稱: joey0415
中學生
- 帖子
- 361
- 主題
- 57
- 精華
- 0
- 積分
- 426
- 點名
- 0
- 作業系統
- win7
- 軟體版本
- 2003,2010
- 閱讀權限
- 20
- 性別
- 男
- 註冊時間
- 2010-5-13
- 最後登錄
- 2022-12-8
|
執行階段錯誤13 型態不符合
本帖最後由 joey0415 於 2010-6-25 19:21 編輯
小弟將錄製的代碼(已成功可用)
改成比較好看的代碼(失敗)
可以幫我看看是哪�媬欞~嗎?
小弟改變sql語句的寫法,常常sql語句很短的時候,兩種方法都行,一但sql的語句變長時,就會有下面的錯誤- Sub day150_1()
- '
- ' day150_1 Macro
- Sheets("Sheet1").Select
- Range("A1").Select
- With ActiveSheet.QueryTables.Add(Connection:= _
- "ODBC;DRIVER=SQL Server;SERVER=.;UID=sa;PWD=abcd1234;APP=2007 Microsoft Office system;WSID=CS5111;DATABASE=stock" _
- , Destination:=Range("A1"))
- .CommandText = Array( _
- "select a.*,b.*,c.*,d.*" & Chr(13) & "" & Chr(10) & " from dbo.Stock a" & Chr(13) & "" & Chr(10) & "left join dbo.CreditExchange b on a.sdate=b.sdate and a.stockid=b.stockid" & Chr(13) & "" & Chr(10) & " left join dbo.NLDL c on a.sdate=c.sdate and a.stockid=c.stockid " & Chr(13) & "" & Chr(10) & " left join dbo." _
- , _
- "CompTrade d on a.sdate=d.sdate and a.stockid=d.stockid" & Chr(13) & "" & Chr(10) & " where a.stockid>1000 and a.stockid<2000 and a.sdate>='2009-11-09' order by a.stockid ,a.sdate" & Chr(13) & "" & Chr(10) & "" _
- )
- .Name = "day150_1"
- .FieldNames = True
- .RowNumbers = False
- .FillAdjacentFormulas = False
- .PreserveFormatting = True
- .RefreshOnFileOpen = False
- .BackgroundQuery = True
- .RefreshStyle = xlInsertDeleteCells
- .SavePassword = True
- .SaveData = True
- .AdjustColumnWidth = True
- .RefreshPeriod = 0
- .PreserveColumnInfo = True
- .Refresh BackgroundQuery:=False
- End With
- End Sub
複製代碼 錯誤代碼:
就是這句有問題
.CommandText = Array(ssql)- Sub day150_11()
- '
- ' day150_1 Macro
- Dim ssql As String
- ssql = ""
- ssql = ssql & "select a.*,b.*,c.*,d.* from dbo.Stock a" & Chr(13)
- ssql = ssql & "left join dbo.CreditExchange b on a.sdate=b.sdate and a.stockid=b.stockid" & Chr(13)
- ssql = ssql & "left join dbo.NLDL c on a.sdate=c.sdate and a.stockid=c.stockid" & Chr(13)
- ssql = ssql & "left join dbo.CompTrade d on a.sdate=d.sdate and a.stockid=d.stockid" & Chr(13)
- ssql = ssql & "where a.stockid>1000 and a.stockid<2000 and a.sdate>='2009-11-09'" & Chr(13)
- ssql = ssql & "order by a.stockid ,a.sdate" & Chr(13)
- Sheets("Sheet1").Select
- Range("A1").Select
- With ActiveSheet.QueryTables.Add(Connection:= _
- "ODBC;DRIVER=SQL Server;SERVER=.;UID=sa;PWD=abcd1234;APP=2007 Microsoft Office system;WSID=CS5111;DATABASE=stock" _
- , Destination:=Range("A1"))
- .CommandText = Array(ssql)
- .Name = "day150_1"
- .FieldNames = True
- .RowNumbers = False
- .FillAdjacentFormulas = False
- .PreserveFormatting = True
- .RefreshOnFileOpen = False
- .BackgroundQuery = True
- .RefreshStyle = xlInsertDeleteCells
- .SavePassword = True
- .SaveData = True
- .AdjustColumnWidth = True
- .RefreshPeriod = 0
- .PreserveColumnInfo = True
- .Refresh BackgroundQuery:=False
- End With
- End Sub
複製代碼 |
|