• Run-Time error '3075'
  • Run-Time error '3075'

    toidjtjmtoi > 27-06-19, 10:32 AM

    Nhờ mọi người sửa giúp mình lỗi này với
    Trích dẫn:Syntax error in date in query expression '[vDate] = #29/2/2019# and [eid]=6'
    Code lỗi
    Trích dẫn:Me("Day" & Trim®).Value = DLookup("[vHrs]", "tblVacHrs", "[vDate] = #" & intDay & "/" & intMonth & "/" & MyYear & "# And [eid]=" & empid)

    Cả bộ code đây ạ
    Trích dẫn:Public Sub SetDates()
        For r = 1 To 37
            Me("Box" & Trim$®) = ""
            Me("Box" & Trim®).BackColor = "16777215"
            Me("Box" & Trim®).Visible = True
            Me("Day" & Trim$®) = ""
            Me("Day" & Trim®).BackColor = "16777215"
        Next r
        For r = 36 To 37
            Me("Box" & Trim®).Visible = False
            Me("Day" & Trim®).Visible = False
        Next r
        Box37.BackColor = "12632256"
        Day37.BackColor = "12632256"
        txtMonth.Caption = MonthName(intMonth) & " " & MyYear
        intPos = InStr(1, Date, "/", vbTextCompare)
        intFirstDay = WeekDay(Str(intMonth) & "/1" & Str(MyYear))
        intDay = 1 - intFirstDay + 1
        strDate = Str(intMonth) & "/1" & Str(MyYear)
        intLastDay = DateSerial(Year(strDate), Month(strDate) + 1, Day(strDate)) _
        - DateSerial(Year(strDate), Month(strDate), Day(strDate))
        For r = 1 To 35
            strDay = "Box" & Trim®
            dv = "Day" & Trim®
            If intDay < 1 Then
                Me(strDay).BackColor = "12632256"
                Me(strDay).Visible = False
                Me("Day" & Trim®).BackColor = "12632256"
              Else
                If intDay >= intLastDay + 1 Then
                    Me(strDay).BackColor = "12632256"
                    Me(strDay).Visible = False
                    Me("Day" & Trim®).BackColor = "12632256"
                  Else
                    Me(strDay) = intDay
                    Me("Day" & Trim®).Value = DLookup("[vHrs]", "tblVacHrs", "[vDate] = #" & intDay & "/" & intMonth & "/" & MyYear & "# And [eid]=" & empid)
                    If Not IsNull(DLookup("[hDate]", "tblHolidays", "[hDate]=#" & intMonth & "/" & intDay & "/" & MyYear & "#")) Then
                        Me("Box" & Trim®).ForeColor = "8421504"
                    End If
                End If
            End If
            intDay = intDay + 1
        Next r
       
        For r = 36 To 37
            If intDay <= intLastDay Then
                Me("Box" & Trim®) = intDay
                Me("Box" & Trim®).Visible = True
                Me("Box" & Trim®).BackColor = "16777215"
                Me("Day" & Trim®).Visible = True
                Me("Day" & Trim®).BackColor = "16777215"
                Me("Day" & Trim®).Value = DLookup("[vHrs]", "tblVacHrs", "[vDate] = #" & intDay & "/" & intMonth & "/" & MyYear & "#")
            End If
            intDay = intDay + 1
        Next r

        If IsNull(DSum("[vHrs]", "tblVacHrs", "Month([vDate])=" & intMonth & " and Year([vDate])=" & MyYear & " And [eid]=" & empid)) Then
            Me.txtTotal.Value = 0
          Else
            Me.txtTotal.Value = DSum("[vHrs]", "tblVacHrs", "Month([vDate])=" & intMonth & " and Year([vDate])=" & MyYear & " And [eid]=" & empid)
        End If

    End Sub


    Thanks  015
  • RE: Run-Time error '3075'

    ongke0711 > 27-06-19, 10:56 AM

    Tháng 2/2019 có ngày 29 không bạn?
  • RE: Run-Time error '3075'

    duynamvnn1208 > 27-06-19, 01:46 PM

    (27-06-19, 10:56 AM)ongke0711 Đã viết: Tháng 2/2019 có ngày 29 không bạn?

    Anh ongke0711 trả lời một câu thật là bá cháy
  • RE: Run-Time error '3075'

    toidjtjmtoi > 27-06-19, 01:57 PM

    (27-06-19, 10:56 AM)ongke0711 Đã viết: Tháng 2/2019 có ngày 29 không bạn?
    Không có nhưng làm sao sửa khi bị vậy bạn . Câu lệnh chỉ hiển thị lên 1 lịch có 31 ngày , cứ ngày nào chỉ có 30 là nó lỗi
  • RE: Run-Time error '3075'

    ongke0711 > 27-06-19, 02:06 PM

    (27-06-19, 01:57 PM)toidjtjmtoi Đã viết: Không có nhưng làm sao sửa khi bị vậy bạn . Câu lệnh chỉ hiển thị lên 1 lịch có 31 ngày , cứ ngày nào chỉ có 30 là nó lỗi

    Thực ra nhìn đống code này tôi cũng lùng bùng. Đây là code để hiện lịch lên form à?
    Gợi ý là:
    Bẫy lỗi chỗ cái biến "intDay". 
    - Xác định ngày cuối tháng của tháng đang xét là ngày mấy. Vd: ngày cuối tháng 6 là 30, cuối tháng 7 là 31, cuối tháng 2/2019 là 28.
    - Xét nếu intDay> ngày cuối tháng thì lấy intDay = NgayCuoiThang
    ....