현재 TFaccess 조회폼은 데이터 편집을 허용하지 않고 있습니다. 반드시 입력폼으로 전환하여 데이터 편집을 해야 하는데, 간혹 열이 그리 많지 않은 테이블의 경우, 일일이 입력폼에서 수정하는 작업이 조금 불편할 수 있습니다. 다음 방법을 통해 조회폼에서 바로 입력하도록 전환할 수 있으니 참고하시기 바랍니다. 1. 조회폼 모듈 수정 조회 폼 모듈에 다음의 코드를 삽입하십시오. 소스: 조회폼 편집 가능하도록 변경하기Private Sub Form_Load()On Error GoTo Herror Me.subA.Form.RecordsetType = 4 Exit Sub Herror: Select Case Err.Number Case Else xsberrmsg xfnErrFormat(Err.Number, Err.Description) End Select End Sub'--------------------------------------'Form_Open 이벤트 프로시저는 다음과 같이 되어야 합니다.2. 조회폼 하위폼 모듈 수정 조회폼의 하위폼에 다음과 같은 코드를 삽입하십시오. 소스: 조회폼 하위폼에 들어갈 내용'------------------------------------------'이 부분은 모듈의 선언부에 위치해야 합니다.'------------------------------------------Private mobjAutoNumProperties As xAutoNumProperties'------------------------------------------ Private Sub Form_Delete(Cancel As Integer)On Error GoTo Herror '권한 체크 If Not Me.Parent.SearchForm.PermDelete Then Cancel = True xsberrmsg xfnConcatNL(xfnGetSysMsg(152)) Exit Sub End If Exit Sub Herror: Select Case Err.Number Case Else Cancel = True xsberrmsg xfnErrFormat(Err.Number, Err.Description) End Select End SubPrivate Sub Form_Dirty(Cancel As Integer)On Error GoTo Herror'권한 체크 If Not Me.Parent.SearchForm.PermUpdate Then Cancel = True xsberrmsg xfnConcatNL(xfnGetSysMsg(150)) Exit Sub End If Exit Sub Herror: Select Case Err.Number Case Else Cancel = True xsberrmsg xfnErrFormat(Err.Number, Err.Description) End Select End SubPrivate Sub Form_BeforeInsert(Cancel As Integer)On Error GoTo Herror Dim objColumn As xObjCol Dim ctr As Control Dim strMsg As String '권한 체크 If Not Me.Parent.SearchForm.PermInsert Then Cancel = True xfnUndoForm Me xsberrmsg xfnConcatNL(xfnGetSysMsg(151)) Exit Sub End If '작성자, 작성일시 입력 If xfnIsControlExist(Me, "CID") Then CID.Value = xfnGetConf("UserID") End If If xfnIsControlExist(Me, "CTIME") Then CTime.Value = xfnGetCurrentTime() End If '기본적인 자동 채번 속성 만들기 If Not fnIsAutoNumInited() Then Set mobjAutoNumProperties = xfnNew_xAutoNumProperties For Each objColumn In Me.Parent.Columns If Not xfnIsEmpty(objColumn.AutoNumID) Then mobjAutoNumProperties.Add objColumn.Name End If Next End If '자동 채번 For Each objColumn In Me.Parent.Columns 'AutoNumID가 정의되어 있는 컬럼 중에서... If Not xfnIsEmpty(objColumn.AutoNumID) Then '폼의 모든 컨트롤 중... For Each ctr In Me.Controls 'ControlSource 속성이 있는 컨트롤에 대해서... If xfnIsObjectValid(ctr, "ControlSource") Then 'Image Type의 컨트롤의 경우 채번하지 않음 If Not TypeOf ctr Is Image Then '열 이름과 ControlSource 속성이 같은 컨트롤에 대해서 새 ID 할당 If xfnStrComp(ctr.ControlSource, objColumn.Name) Then ctr.Value = objColumn.GetNewAutoNum(mobjAutoNumProperties(objColumn.Name)) End If End If End If Next End If Next Exit Sub Herror: Cancel = True strMsg = xfnErrFormat(Err.Number, Err.Description) strMsg = xfnConcatNL( _ xfnGetSysMsg(131) _ , strMsg _ ) xfnUndoForm Me xsberrmsg strMsg End SubPrivate Function fnIsAutoNumInited() As BooleanOn Error GoTo Herror Dim a a = mobjAutoNumProperties.Count fnIsAutoNumInited = True Exit Function Herror: fnIsAutoNumInited = False End FunctionPrivate Sub Form_BeforeUpdate(Cancel As Integer)On Error GoTo Herror'수정자, 수정일시 입력 If xfnIsControlExist(Me, "EID") Then EID.Value = xfnGetConf("UserID") End If If xfnIsControlExist(Me, "ETIME") Then ETime.Value = xfnGetCurrentTime() End If'필수 입력 필드값 체크 If Not xfnAllRequiredFieldFilled(Me) Then Cancel = True Exit Sub End If Exit Sub Herror: Cancel = True xsberrmsg xfnConcatNL( _ xfnGetSysMsg(132) _ , xfnErrFormat(Err.Number, Err.Description) _ ) End Sub |