-
Thay Query bằng SQL trong VBA
tt1212 > 23-07-13, 01:26 PM
Kính gửi các bạn trên diễn đàn.
Mình có một nỗi niếm mong mọi người chia sẻ
Trong Access Query là một câu lệnh SQL vậy có cách nào minh viết câu lệnh SQL vào trong code VBA hay không
Ví dụ có bảng TBHocsinh khi muốn truy xuất trong một query QLochocsinh Query nay lọc những học sinh nam
Nếu sử dụng query thò trong file của mình hiện hữu một thằng query không có tính bảo mật.
Nếu sử dụng câu lệnh SQl mình có thể bo di cai Query được không?
Minh lấy ý tưởng như thể này
Viết một thư tục
Lọc học sinh
Sub private lochocsinh
Dim Strsql as string
StrSQl ="Select * From TBhocsinh whre Goitinh =nam"
Dim tb as rcordset
Set tb =current db .openrcordret("Strsql",dbopendynaset)
Do until tb.EOF
Truy vấn ,.....
exit do
loop
tb.move next
end sub
Như vậy co đươc không các bạn nhỉ -
RE: Thay Query bằng SQL trong VBA
Xuân Thanh > 23-07-13, 02:09 PM
Mã PHP:Sub LocHS()
Dim rs As Recordset
Set rs = CurrentDb.OpenRecordset("Select * From tblHocSinh Where GioiTinh = 'Nam')
------
End Sub
1/ Viết ngay câu truy vấn, không cần định nghĩa biến StrSQL làm chi cho dài dòng. Cái này nói nhiều rồi
2/ Lưu ý khi viết phải viết cho đúng chính tả, ngữ pháp và nhất là các câu lệnh của Access để tránh nhầm lẫn
Thân mến -
RE: Thay Query bằng SQL trong VBA
tt1212 > 23-07-13, 03:40 PM
lam như vậy là bỏ luôn cai query phai không anh thành
em cảm ơn anh! -
RE: Thay Query bằng SQL trong VBA
janzychip > 19-11-14, 11:05 AM
Em có 1 subform và 1 combobox trên cùng 1 form, bây giờ khi thay đổi giá trị trên combobox thì sẽ có 1 query chạy để truy xuất tương ứng với giá trị của combobox đã lựa chọn để đưa kết quả truy vấn hiển thị lên subform, vậy có cách nào để chạy điều này hoàn toàn bằng code không anh XuanThanh vì hiện tại em vẫn phải tạo 1 query rồi sau khi đóng form lại thì lại xóa đi
Mã PHP:Private Sub Form_Load()
Dim i As Integer
i = 0
Do
Me.Combo50.AddItem (T(i))
i = i + 1
Loop Until T(i) = ""
Dim Queryadd1 As QueryDef
Dim SQL1 As String
SQL1 = "SELECT T_ThongtinBTN.MaCG, T_ThongtinBTN.MaBTN, T_ThongtinBTN.LoaiBTN FROM T_ThongtinBTN where T_ThongtinBTn.MaCG = [forms]![F_Xemthongtintheodanhsach]![combo50];"
Set Queryadd1 = CurrentDb.CreateQueryDef("Queryadd1", SQL1)
Me.Child68.SourceObject = "Query.Queryadd1" ( Khi câu lệnh này thực hiện sẽ xuất hiện 1 query trên bảng list query và em không muốn điều này xảy ra )
' Me.LocTTCN
End Sub -
RE: Thay Query bằng SQL trong VBA
Xuân Thanh > 20-11-14, 10:56 AM
....
Dim rs As Recordset
Set rs = CurrentDb.OpenRecordset(SQL1)
Me.Child68.RowSource = rs
....
1/ Khi load form, chỉ cập nhật cho combobox
2/ Khi chọn combobox mới thực thi câu SQL
Thân mến -
RE: Thay Query bằng SQL trong VBA
janzychip > 20-11-14, 11:49 AM
Vấn đề là Subform không có thuộc tính rowsource như là combobox anh ạ mà chỉ có SourceObject. Vậy thì có cách nào hiển thị kết quả truy vấn lên subform khác hoặc còn cách nào khác để thể hiện truy vấn nhiều field không ạ? -
RE: Thay Query bằng SQL trong VBA
Xuân Thanh > 20-11-14, 04:21 PM
Sory bạn nhé vì viết vội nên nhầm. Chính xác phải là RecordSource. Thành thật xin lỗi bạn
Thân mến -
RE: Thay Query bằng SQL trong VBA
tranthanhan1962 > 20-11-14, 10:12 PM
Bạn cũng có thể đặt giá trị Property Data của Subform
Link Child Field: MaCG
Link Master Field: combo50
Mỗi khi bạn thay đổi giá trị combo50. Subform sẽ được lọc MaCG theo giá trị của combo50.
Cực kỳ đơn giản phải không bạn. -
RE: Thay Query bằng SQL trong VBA
janzychip > 24-11-14, 05:29 PM
Cảm ơn ý kiến của 2 anh, em đã làm thử cách của anh Tranthanhan khi em set property trên form design thì nó xuất hiện lỗi " Cant link between ubound form" . Em không hiểu lắm về lỗi này? -
RE: Thay Query bằng SQL trong VBA
vulhu06 > 12-12-14, 10:22 AM