Giúp đở đoạn code SQL trong VBA của Access

xiketuan

New Member
Hội viên mới
Mã:
Private Sub Command22_Click()
Dim st1 As String, st2 As String
   
st1 = " SELECT T_Sinhvien.MASV, T_Sinhvien.Holot, T_Sinhvien.TenSV, nghiemtrang([holot]) " & " " & " nghiemtrang([tensv]) AS hovaten, T_Sinhvien.MaLop, T_Sinhvien.Ngaysinh, T_Sinhvien.Gioitinh," & _
        "T_Sinhvien.Khoahoc, T_Sinhvien.SoCMND, T_Sinhvien.Diachi," & _
        "T_Sinhvien.Mahuyen, T_Sinhvien.Matinh, T_Sinhvien.Madantoc, T_Sinhvien.DienthoaiSV, T_Sinhvien.Email, " & _
        "T_Lop.Tenlop , T_huyen.Tenhuyen, T_Khoa.Tenkhoa, T_Tinh.Tentinh " & _
        "FROM (T_Khoa INNER JOIN T_Lop ON T_Khoa.[Makhoa] = T_Lop.[Makhoa]) INNER JOIN (T_Tinh INNER JOIN (T_huyen INNER JOIN T_Sinhvien ON T_huyen.[Mahuyen] = T_Sinhvien.[Mahuyen]) ON T_Tinh.[Matinh] = T_Sinhvien.[Matinh]) ON T_Lop.[MaLop] = T_Sinhvien.[MaLop]"

    Select Case FindOptions
        Case 1
            If IIf(IsNull(Txtmasv), "", Txtmasv) = "" Then
                MsgBox " Ma so sinh vien chua nhap"
                Exit Sub
            End If
            st2 = "where T_sinhvien.masv='" & Txtmasv & "'"
            
         Case 2
            If IIf(IsNull(TxttenSV), "", TxttenSV) = "" Then
                MsgBox " ten sinh vien chua nhap"
                Exit Sub
            End If
            st2 = "where  (((nghiemtrang([holot]) " & " " & " nghiemtrang([tensv])) like '*" & TxttenSV & "*'"
         Case 3
            If IsNull(CbomaLop) Then
                MsgBox " chua chon Lop ma Ku"
                Exit Sub
            End If
           
            st2 = "where T_sinhvien.malop ='" & CbomaLop & "'"
          Case 4
            If IsNull(CboMahuyen) Then
                MsgBox " chua chon Huyen ma Ku"
                Exit Sub
            End If
            st2 = "where T_sinhvien.mahuyen ='" & CboMahuyen & "'"
           Case 5
            If IsNull(Cbomatinh) Then
                MsgBox " chua chon tinh ma Ku"
                Exit Sub
            End If
            st2 = "where T_sinhvien.matinh ='" & Cbomatinh & "'"
            
         End Select
         st1 = st1 & st2
         With SubCT
            If .SourceObject = "" Then
                .SourceObject = "F_KQTKSinhvien"
             End If
           .Form.RecordSource = st1
        End With
        
End Sub

khi thực hiện tìm kiếm thì báo lỗi ngay chỗ xem ảnh :
screenhunter01oct122245.jpg


do mình nối 1 khoảng trắng giữa họ lót và tên nên bị lỗi mà không biết phải làm thế nào? nhờ các bác fix dùm, em đang cần gấp. thanks
 
Ðề: Giúp đở đoạn code SQL trong VBA của Access

Mã:
Private Sub Command22_Click()
Dim st1 As String, st2 As String
   
st1 = " SELECT T_Sinhvien.MASV, T_Sinhvien.Holot, T_Sinhvien.TenSV, nghiemtrang([holot]) " & " " & " nghiemtrang([tensv]) AS hovaten, T_Sinhvien.MaLop, T_Sinhvien.Ngaysinh, T_Sinhvien.Gioitinh," & _
        "T_Sinhvien.Khoahoc, T_Sinhvien.SoCMND, T_Sinhvien.Diachi," & _
        "T_Sinhvien.Mahuyen, T_Sinhvien.Matinh, T_Sinhvien.Madantoc, T_Sinhvien.DienthoaiSV, T_Sinhvien.Email, " & _
        "T_Lop.Tenlop , T_huyen.Tenhuyen, T_Khoa.Tenkhoa, T_Tinh.Tentinh " & _
        "FROM (T_Khoa INNER JOIN T_Lop ON T_Khoa.[Makhoa] = T_Lop.[Makhoa]) INNER JOIN (T_Tinh INNER JOIN (T_huyen INNER JOIN T_Sinhvien ON T_huyen.[Mahuyen] = T_Sinhvien.[Mahuyen]) ON T_Tinh.[Matinh] = T_Sinhvien.[Matinh]) ON T_Lop.[MaLop] = T_Sinhvien.[MaLop]"

    Select Case FindOptions
        Case 1
            If IIf(IsNull(Txtmasv), "", Txtmasv) = "" Then
                MsgBox " Ma so sinh vien chua nhap"
                Exit Sub
            End If
            st2 = "where T_sinhvien.masv='" & Txtmasv & "'"
            
         Case 2
            If IIf(IsNull(TxttenSV), "", TxttenSV) = "" Then
                MsgBox " ten sinh vien chua nhap"
                Exit Sub
            End If
            st2 = "where  (((nghiemtrang([holot]) " & " " & " nghiemtrang([tensv])) like '*" & TxttenSV & "*'"
         Case 3
            If IsNull(CbomaLop) Then
                MsgBox " chua chon Lop ma Ku"
                Exit Sub
            End If
           
            st2 = "where T_sinhvien.malop ='" & CbomaLop & "'"
          Case 4
            If IsNull(CboMahuyen) Then
                MsgBox " chua chon Huyen ma Ku"
                Exit Sub
            End If
            st2 = "where T_sinhvien.mahuyen ='" & CboMahuyen & "'"
           Case 5
            If IsNull(Cbomatinh) Then
                MsgBox " chua chon tinh ma Ku"
                Exit Sub
            End If
            st2 = "where T_sinhvien.matinh ='" & Cbomatinh & "'"
            
         End Select
         st1 = st1 & st2
         With SubCT
            If .SourceObject = "" Then
                .SourceObject = "F_KQTKSinhvien"
             End If
           .Form.RecordSource = st1
        End With
        
End Sub

khi thực hiện tìm kiếm thì báo lỗi ngay chỗ xem ảnh :
screenhunter01oct122245.jpg


do mình nối 1 khoảng trắng giữa họ lót và tên nên bị lỗi mà không biết phải làm thế nào? nhờ các bác fix dùm, em đang cần gấp. thanks

Nên đưa cái nghiemtrang đó vào ytrong form nhập liệu và như vậy khi nhập dữ liệu vào Table, bạn đã có nghiemtrang rồi, khi đưa ra câu SQL không phải sử dụng nó nữa. Tôi chưa xem kỹ bài nhưng góp ý với bạn như thế. Bạn xem lại nha
Thân
 
Ðề: Giúp đở đoạn code SQL trong VBA của Access

cám ơn bạn đã trả lời, rốt cuộc mình đã sửa lại cột holot va ténv thành một cột hovaten trong table luôn cho khỏe.
 
Re: Ðề: Giúp đở đoạn code SQL trong VBA của Access

Tại sao lại phải thế?
Câu này bạn chỉ cần bỏ cái " " giữa nghiemtrang([holot]) " & " " & " nghiemtrang([tensv]) AS hovaten là OK thôi mà?
nghiemtrang([holot]) " & " & ' ' & nghiemtrang([tensv]) AS hovaten như thế là được.
 

CẨM NANG KẾ TOÁN TRƯỞNG


Liên hệ: 090.6969.247

KÊNH YOUTUBE DKT

Cách làm file Excel quản lý lãi vay

Đăng ký kênh nhé cả nhà

SÁCH QUYẾT TOÁN THUẾ


Liên hệ: 090.6969.247

Top