• Thay Query bằng SQL trong VBA
  • 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
    0
    Do
        
    Me.Combo50.AddItem (T(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

    (24-11-14, 05:29 PM)janzychip Đã viết: 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?

    Cái lỗi đó là do control của bạn không có nguồn dữ liệu (unbound)