Xin code tự động nhập địa chỉ ô của Parameter Value trong Query Excel (1 người xem)

Liên hệ QC

Người dùng đang xem chủ đề này

nmh_phocu

Thành viên mới
Tham gia
13/7/06
Bài viết
48
Được thích
1
Em xin các anh chị tư vấn code cho em trường hợp này:

Em tạo một query trong excel có dạng SQL như sau :
SELECT Name.Name, Name.`Nam sinh`
FROM `C:\Query\Book1`.Name Name
WHERE (Name.Name=?)
rồi em ghi lại Query này ra chỗ khác

Cái dấu "?" này là địa chỉ ô Parameter Value của Query em phải nhập.

Sau đó em dùng ghi Macro để ghi lại việc em nhập Query này vào bảng excel của mình và em thấy code như sau:



Sub Macro()
Sheets("Sheet1").Select
Range("D2").Select
With ActiveSheet.QueryTables.Add(Connection:= _
"ODBC;DSN=Excel Files;DBQ=C:\Query\Book1.xls;DefaultDir=C:\Query;DriverId=790;MaxBufferSize=2048;PageTimeout=5;" _
, Destination:=Range("D2"))
.CommandText = Array( _
"SELECT Name.Name, Name.`Nam sinh` FROM `C:\Query\Book1`.Name Name WHERE (Name.Name=?)" _
)
.Name = "Query from Excel Files_2"
.FieldNames = False
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = False
.RefreshStyle = xlOverwriteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = False
.RefreshPeriod = 0
.PreserveColumnInfo = False
.SourceConnectionFile = "C:\Query\Query from Excel Files.dqy"
.Refresh BackgroundQuery:=False
End With
End Sub


Ở chỗ em bôi đỏ ở trên trong code em muốn thay bằng địa chỉ ô cụ thể thì phải nhập cái gì vào ạ? Ví dụ em muốn nhập thay dấu chấm hỏi đó là địa ô C2 để khi đó chạy Macro máy sẽ tự động hiểu "?" là ô C2 mà không bắt mình nhập vào Parameter Value nữa.

Em xin chân thành cảm ơn các bác trước

em gửi thêm cái file, các bác giải nén vào ổ C nhé
 

File đính kèm

Lần chỉnh sửa cuối:
Cái vấn đề này rất hay, nhưng hôm nay em lại bị dính một cái:

Nếu bình thường ở một số máy thì chạy ngon lành, nhưng một số máy thì cái Application.SendKeys thì chả chạy gì cả, các bác giúp em với. Đây là code của em:

Sub CD_THE()
Sheets("THE").Select
Range("F4").Select
With ActiveSheet.QueryTables.Add(Connection:= _
"ODBC;DSN=Excel Files;DBQ=M:\MH.xls;DefaultDir=M:\;DriverId=790;MaxBufferSize=2048;PageTimeout=5;" _
, Destination:=Range("F4"))
.CommandText = Array( _
"SELECT Sum(THNXT.SLDN) AS 'Sum of SLDN' FROM " & "`" & Sheets("SQL").Range("B2").Value & "`" & ".THNXT THNXT WHERE (THNXT.TK=?) AND (THNXT.MSP=?)" _
)
Application.SendKeys "{left}{left}{left}{TAB}{ }{TAB}{TAB}{Enter}"
Application.SendKeys "{down}{left}{left}{left}{TAB}{ }{TAB}{TAB}{Enter}"

.Name = "30"
.FieldNames = False
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = False
.RefreshStyle = xlOverwriteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = False
.RefreshPeriod = 0
.PreserveColumnInfo = False
.SourceConnectionFile = _
"" & Sheets("SQL").Range("B4").Value & "\Query\" & "30.dqy"
.Refresh BackgroundQuery:=False
End With
End Sub
 
Upvote 0
Web KT

Bài viết mới nhất

Back
Top Bottom