어쨌든 Access 2000에서 여러 양식, 쿼리 등을 삭제 하시겠습니까? (디자이너에서).Access 2000 - 여러 형식 지우기?
2
A
답변
1
VBA를 사용하여 개체를 삭제할 수 있습니다. 콜렉션에서 삭제할 때 뒤로 단계해야합니다, 예를 들어,이 코드는 꽤 많은 개체를 삭제합니다 : 사용자가 특정 작업을 수행 할 때
Dim db As Database
Dim idx As Long
Dim strName As String
Set db = CurrentDb
''Forms
For idx = CurrentProject.AllForms.Count - 1 To 0 Step -1
strName = CurrentProject.AllForms(idx).Name
DoCmd.DeleteObject acForm, strName
Next idx
''Reports
For idx = CurrentProject.AllReports.Count - 1 To 0 Step -1
strName = CurrentProject.AllReports(idx).Name
DoCmd.DeleteObject acReport, strName
Next idx
''Modules
For idx = CurrentProject.AllModules.Count - 1 To 0 Step -1
strName = CurrentProject.AllModules(idx).Name
If strName <> "Module9" Then
DoCmd.DeleteObject acModule, strName
End If
Next idx
''Queries
For idx = db.QueryDefs.Count - 1 To 0 Step -1
strName = db.QueryDefs(idx).Name
If Left(strName, 4) <> "~sq_" Then
db.QueryDefs.Delete strName
Else
Debug.Print strName
End If
Next idx
''Relationships
For idx = db.Relations.Count - 1 To 0 Step -1
strName = db.Relations(idx).Name
If Left(strName, 4) <> "msys" Then
db.Relations.Delete strName
Else
Debug.Print strName
End If
Next idx
''Tables
For idx = db.TableDefs.Count - 1 To 0 Step -1
strName = db.TableDefs(idx).Name
If Left(strName, 4) <> "msys" Then
db.TableDefs.Delete strName
Else
Debug.Print strName
End If
Next idx
2
나는 즉시 쿼리를 많이 만들 수 있습니다. 따라서 쿼리를 만든 다음 양식을 닫으면 쿼리를 삭제합니다. On Close 이벤트에서이 작업을 수행합니다. 조회가 작성되었는지 여부에 관계없이 실행됩니다. 따라서 오류를 방지하기 위해 다음 재개라고 말합니다.
Private Sub Form_Close()
On Error Resume Next
DoCmd.Close acReport, "EmployeeDetails"
DoCmd.DeleteObject acQuery, "MyEmployeeDetails"
End Sub
2
이것은 나에게 잘 맞았습니다. 루프 자체의 요소를 제거하려고하면 계속 문제가 발생합니다. 객체 이름을 배열로 쳐서 나중에 삭제했습니다.
Public Sub DeleteAllFormsAndReports()
Dim accobj As AccessObject
Dim X As Integer
Dim iObjCount As Integer
Dim sObjectNames() As String
If MsgBox("Are you sure you want to delete all of the forms and reports?", vbCritical + vbYesNo) = vbYes Then
ReDim sObjectNames(0)
For Each accobj In CurrentProject.AllForms
ReDim Preserve sObjectNames(UBound(sObjectNames) + 1)
sObjectNames(UBound(sObjectNames)) = accobj.Name
Next accobj
For X = 1 To UBound(sObjectNames)
DoCmd.DeleteObject acForm, sObjectNames(X)
Next X
ReDim sObjectNames(0)
For Each accobj In CurrentProject.AllReports
ReDim Preserve sObjectNames(UBound(sObjectNames) + 1)
sObjectNames(UBound(sObjectNames)) = accobj.Name
Next accobj
For X = 1 To UBound(sObjectNames)
DoCmd.DeleteObject acReport, sObjectNames(X)
Next X
End If
최종 하위
"삭제"으로
당신이 개체를 삭제 의미하거나 열려있는 형태 또는 쿼리에 표시되는 데이터를 삭제 의미합니까? –
개체를 삭제하십시오. – Alex
도움이된다면 내 대답을 표시해도 되겠습니까? 담당자를 사용할 수 있습니다. :) – jfw