2016-10-04 2 views
0

SAVE 버튼의 코드에서 레코드를 저장하고 레코드를 저장하고있는 테이블과 다른 테이블에 확인란을 표시하고 싶습니다. . 기본적으로 체크리스트 테이블과 비슷합니다. 나는 -1 내가 시도 있도록 체크 표시를 나타냅니다 알고VBA를 사용하여 테이블에 확인란을 설정하지 마십시오

Me.tblProjectCompletion.Done = -1 

와 나는 Me없이 노력했다.

나는 또한 그것을 테이블에 저장하기 위해 먼저 폼에 넣으려고했지만 다른 문제가 발생했습니다. 나는 그것이 가장 좋은 것 projectID에 대해 원하는 테이블에 체크 표시를 절약 할 수 있습니다, 그래서 나는 또한 시도하는 경우 :

if ProjectCompletion.ProjectCompID = Project.ProjectID then tblProjectCompletion.Done = -1 

하지만 같은 코드 중 하나를 작동하지 않습니다. 어떤 제안?

Currentdb.Execute 
Update ProjectCompletion 
Set [ProjectCompletion].[Done] = -1 
WHERE [ProjectCompletion].[ProjectCompID] = [Project].[ProjectID] 

이 코드는 대괄호와 따옴표없이 사용하고 마지막에는 세미콜론을 사용했습니다. 이 패턴을 사용하면 실행시 중지되고 argument not optional라고 표시됩니다. 다음 코드가 작동합니다. 난 그냥 확인란의 검사를 추가해야합니다.

Private Sub Save_Record_Click() 
DoCmd.RunCommand acCmdSaveRecord 
If Me.Dirty Then 
Me.Dirty = False 
End If 
End Sub 
+2

를 사용할 필요가 업데이트하려는 것을 기록 단서가 없다는 것입니다 Where <레코드를 업데이트하기위한 조건> " – Sorceri

+0

둘을 조인하고 DISTINCT 키워드를 사용하는 쿼리를 사용하여 한 번에 두 테이블에 폼을 바인딩 할 수도 있지만 @ Sorceri의 제안을 사용하여 직접 업데이트하는 것이 더 나을 것입니다 당신의 기준에 따라 SQL을 사용하여 다른 테이블에 직접적으로 단일 필드. – Blackhawk

+0

나는 오라클을 사용하기 때문에이 접근법을 많이 좋아하지만, 예상치 못한 문장의 컴파일 오류가 발생합니다. 나는 UPDATE 앞과 뒤쪽에 따옴표를 넣어서 시도했다. 당신이 나에게 준 구문에 누락 된 구문이 있습니까? 나는 정말로 그것을 원한다! – 985ranch

답변

0

오케이, 이렇게 나는 폼 모듈이라고 추측합니다. = -1 CurrentDb.Execute "UPDATE TABLENAME SET 필드 이름 : 문제는 당신이 그렇게 당신과 같은 업데이트 문을 사용하는 데 필요한 CurrentRecord 속성을

CurrentDb.Execute "UPDATE ProjectCompletion SET [ProjectCompletion].[Done] = -1 WHERE [ProjectCompletion].[ProjectCompID] = " & Me.Recordset.Fields("ProjectID").Value 
+0

저장 단추가 양식 (하위 양식)에 있다는 것이 맞습니다. 나는 당신이 묘사 한 것과 정확히 똑같이했다. 컴파일 오류가 없지만 상자에는 여전히 체크가 없습니다. 나는 "="다시 Me.CurrentRecord의 앞에 오른쪽을 추가하려고했지만 그것을 시도하지만, 다시 컴파일 오류가 발생합니다. 어떻게 설명 했는가? 어떤 필드가 외래 키인지 어떻게 알 수 있습니까? – 985ranch

+0

@ 985hunter CurrentRecord가 현재 레코드의 레코드 번호를 가리키며, 레코드 ID와 일치하지 않으면 레코드 ID를 가져와야합니다. 올바른 레코드 ID를 얻는 방법을 결정하는 데 도움이 될 수 있으므로 삭제 및 저장하기위한 매크로를 표시 할 수 있습니까? – Sorceri

+0

나는 내 질문에 그것을 추가했습니다. 네가 나에게주는 도움에 감사한다. – 985ranch

관련 문제