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é
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: