2011-03-02 3 views
0

매우 간단한 업데이트 문이 있지만 3061 오류가 계속 발생합니다. 장비는 열 이름은 가능 여기에 잘못 갈 수 있는지, GeneralLocation 및 IDMS Access 3061 너무 적은 매개 변수

Public Function SendToYard(ByVal lEquipmentId As Long) 
    oMb.ExecuteSql ("UPDATE Equipment SET GeneralLocation = 'Yard' WHERE ID = " & lEquipmentId) 
End Function 

테이블 이름 있습니다입니까?

Public Function SendToYard(ByVal lEquipmentId As Long) 
oMb.ExecuteSql ("UPDATE Equipment SET GeneralLocation = 'Yard' WHERE ID = '" & EquipmentId & "'") 

최종 기능

+0

오류 처리기없이 dbFailOnError를 사용하면 정말 현명하지 않습니다. –

답변

2

사실 이것은 진부한 질문이었습니다. 문제는 SQL 디자인 모드에서 기본적으로 현재 데이터베이스를 사용했기 때문에 SQL 문이 올바르게 실행된다는 것입니다. 모델 기본 클래스의 VBA 코드에서 데이터베이스에 저장된 경로를 가져 와서 DAO.Database 개체를 설정하고있었습니다. 잘못된 파일을 가리키고 있습니다. 문제가 해결되었습니다. 결론 : 사용중인 데이터베이스가 무엇인지 확인하십시오.

+0

그것은 우리 중 최고입니다 ... – BIBD

0

을 사용하고있는 ExecuteSql 기능 주입니다 SQL 쿼리 디자이너의보기입니다. 누락 된 매개 변수를 요청하는 입력 상자가 표시되어야합니다. 어딘가에 오타가 있다는 것을 알고 싶습니다. 그러면 그 점을 발견하는 데 도움이됩니다.

+0

ID는 Autonumber -> Long Integer입니다 (시도했지만 여전히 작동하지 않습니다). – cmaduro

+0

하지만 작동합니까? – Henry

+0

GeneralLocation은 3 가지 값 조회 ("Yard", "Garage", "Field")가있는 텍스트 유형입니다. – cmaduro

0

한번에 복사와에 코드의 SQL 부분을 붙여 : 여기

내가이 시도 DAO를

Public Function ExecuteSql(qry As String) 

    db.Execute qry, dbFailOnError 

End Function 
+0

실제로 "1 행을 업데이트하려고합니다."라는 메시지가 실제로 실행됩니다. "& lEquipmentId를 1로 변경하여"UPDATE Equipment SET Equipment.GeneralLocation = 'Yard'WHERE Equipment.ID = 1 "을 반환합니다. – cmaduro