날짜 및 시간 필드 형식이 mm/dd/yyyy가되도록 마스크가 적용된 몇 가지 컨트롤이 있습니다. 양식에로드되는 필드 중 일부는 원본 테이블에서 비어 있으므로 SQL을 실행할 때 본질적으로 잘못된 것인가를 확인합니다. ''또는 Null을 확인합니다. as '는 날짜 번호의 텍스트로 실패하고 필드는 실제로 비어 있지 않습니다.MS 액세스 업데이트 SQL Null이지만 비어있다! (날짜 및 숫자 필드!)
strSQL4 = "UPDATE [tblDetails] SET " & _
"[Proposed] = IIF(IsNull(" & Forms!frmEdit.txtProposed.Value & "),0," & Forms!frmEdit.txtProposed.Value & "), " & _
"[Multi] = IIF(IsNull(" & Forms!frmEdit.txtMulitplier.Value & "),0," & Forms!frmEdit.txtMulitplier.Value & "), " & _
"[Rational] = '" & Forms!frmEdit.txtRational.Value & "' " & _
" WHERE [RNumber] = '" & Forms!frmEdit.cmbUpdate.Value & "'"
Debug.Print strSQL4
dbs.Execute strSQL4
오류는 쿼리 식 에서 기능을 사용 인수 3075 수가 잘못 'IIF (ISNULL(), 0,'
또한 자체가 다른 사이트에서 제시 한 필드를 입력 시도
strSQL4 = "UPDATE [tblDetails] SET " & _
"[Proposed] = IIF(" & Forms!frmEdit.txtProposed.Value & "='',[Proposed]," & Forms!frmEdit.txtProposed.Value & "), " & _
" WHERE [RNumber] = '" & Forms!frmEdit.cmbUpdate.Value & "'"
Debug.Print strSQL4
dbs.Execute strSQL4
동일한 오류 3075 'IIF (IsNull(), 0, [ProposedHrs]'
*** 또한 IIF를 사용하면 실패합니다. IsNull 메서드는 = ''
필자는 실패한 날짜의 예를 붙여 넣지 않았지만 같은 생각으로 null이 아니지만 공백이지만 다시 공백으로 다시 업데이트되거나 어쩌면 건너 뛰는 것처럼 보입니까?
미리 감사드립니다.
업데이트 - 1 시도에서 에릭 폰 Asmuth 코드 < - 감사합니다 btw! 예상 : 표현
업데이트-2 : 나는 첫 번째 줄에 업데이트를 이동
Set qdf = db.CreateQueryDef("", & _
"UPDATE [tblDetails] SET " & _
"[Proposed] = @Proposed, " & _
"[Multi] = @Multi, " & _
"[Rational] = @Rational " & _
"WHERE [RNumber] = @RNumber")
이 부분은 모든 빨간색과 최초의 "&는" 컴파일 오류 알림 창을 닫은 후 강조된다 그것은 작동하는 것 같습니다. 설정 QDF = db.CreateQueryDef ("", "UPDATE [tblDetails] SET"& _
내가 옆에있는 날짜 필드에이 방법을 시도하기 위하여려고하고있다
업데이트-3.과 같은 파라미터를 시도 할 때 99/99/0000으로 마스크 된 텍스트 상자; 0; _ 컬렉션에 항목이 없습니다. 몇 번이나 맞춤법을 검사했는데 모든 것이 정상적으로 보입니다. 다음 세 가지 형식을 시도 했으므로 DateRcvd 매개 변수를 설정하십시오. ? 날짜가 텍스트 상자에 대한 올바른
qdf.Parameters("@DateRcvd") = IIf(Nz(Forms!frmEdit.txtDateRcvd.Value) = "", 0, Forms!frmEdit.txtDateRcvd.Value)
qdf.Parameters("@DateRcvd") = IIf(IsNull(Forms!frmEdit.txtDateRcvd.Value), 0, Forms!frmEdit.txtDateRcvd.Value)
qdf.Parameters("@DateRcvd") = IIf(Forms!frmEdit.txtDateRcvd.Value = "", 0, Forms!frmEdit.txtDateRcvd.Value)
업데이트-4 :
Dim qdf2 As DAO.QueryDef
Set db = CurrentDb
Set qdf2 = db.CreateQueryDef("", "UPDATE [tblDetails] SET " & _
"[DateReceived] = @DateRcvd " & _
"WHERE [RNumber] = @RNumber")
qdf.Parameters("@DateRcvd") = IIf(Nz(Forms!frmEdit.txtDateRcvd.Value) = "", 0, Forms!frmEdit.txtDateRcvd.Value)
qdf.Parameters("@RNumber") = Forms!frmEdit.cmbUpdate.Value
qdf2.Execute
텍스트 상자 txtDateRcvd에는 입력란 99/99/0000; 0; _이 텍스트 상자의 속성 내에 설정되어 있습니다.
가능한 중복 (https://stackoverflow.com/questions/43589800/syntax-error -in-into-statement-into-statement-whats-the-error) – Gustav
새 문제에 대한 쿼리를 제공하십시오 (매개 변수를 지정하지 않은 것처럼 보입니다. 동일한 매개 변수 '@ DateRcvd'를 세 번 설정하고 있습니다). 또한'99/99/0000; 0;'은 유효하지 않은 날짜입니다 (날짜의 모든 부분이 유효하지 않음). Access에서 사용 가능한 가장 낮은 날짜는'01-01-0100 00 : 00'입니다. –
'qdf2 = db.CreateQueryDef'를 설정했으나'qdf'가 아닌'qdf'에서 매개 변수를 변경하려고합니다 : qdf2'. 그건 네 잘못이야. 날짜 필드에 0을 삽입하면 30-12-899로 캐스팅됩니다. 대신 공백으로 남겨 두어 Null을 쓸 수 있습니다. –