Link to home
Start Free TrialLog in
Avatar of AIdoHSG
AIdoHSGFlag for United States of America

asked on

Hidding and unhidding objects using VBA

Hello,

I'm using the following code to hide and unhide certain tables, queries, forms & modules from the user to prevent them from applying any changes. the code is working fine in terms of getting the job done, but I get  a run-time error 49: Bad DLL calling convention
Where is the issue

Option Compare Database
Option Explicit
 
Public Function HideContactDBTables(Optional strText As String)
    ' Call HideContactDBTables("H")   - To Hide
    ' Call HideContactDBTables("S")   - To Show
    
    Dim intCounter As Integer
    Dim intSetAs As Integer
    Dim bolSetAs As Boolean
    
    'Debug.Print UCase(strText)
    
    If UCase(strText) = "H" Then
        intSetAs = dbHiddenObject
        bolSetAs = True
    Else
        intSetAs = 0
        bolSetAs = False
    End If
    
    ' Tables to hide/show
    Dim strTables(24) As String
    strTables(0) = "tblHonCode"
    strTables(1) = "tblHospitalPhysContacts"
    strTables(2) = "tblImport_SurveyComplete"
    strTables(3) = "tblImport_SurveyLink"
    strTables(4) = "tblMasterList"
    strTables(5) = "tblParticipationHistory"
    strTables(6) = "tblSpecialties"
    strTables(7) = "tblPhysicianList_CopyMaster"
    strTables(8) = "tblPhysRecruitingTargets"
    strTables(9) = "tblProgram_IDIStatus"
    strTables(10) = "tblProjectID"
    strTables(11) = "tblProjSpec_ProjectSpecifications"
    strTables(12) = "tblProjSpec_Clients"
    strTables(13) = "tblProjSpec_Expenses"
    strTables(14) = "tblProjSpec_ProjectDescription"
    strTables(15) = "tblProjSpec_ProjectSpecifications"
    strTables(16) = "tblProjSpec_Expenses"
    strTables(17) = "tblProjSpec_ResearchSample"
    strTables(18) = "tblProjSpec_Services"
    strTables(19) = "tblProjSpec_Targets"
    strTables(20) = "tblUpdate"
    strTables(21) = "tblUserFields"
    strTables(22) = "tblVendors"
    strTables(23) = "tblParticipationHistory"
    strTables(24) = "tblProjectDataCollection"
 
    
    ' Queries to hide/show
    Dim strQueries(32) As String
    strQueries(0) = "qry_CompareContactsNew_Old"
    strQueries(1) = "qry_HonUpdate"
    strQueries(2) = "qry_MatchPhysTempIDs"
    strQueries(3) = "qry_NewPhysToAdd"
    strQueries(4) = "qry_ProjCheckList"
    strQueries(5) = "qry_ProjectPIData"
    strQueries(6) = "qryHospitalPhysContacts"
    strQueries(7) = "qryPIData"
    strQueries(8) = "qryProgram_AdditionalProjects"
    strQueries(9) = "qryProgram_HonorariaToPay_ProjInfo"
    strQueries(10) = "qryProgram_Interview"
    strQueries(11) = "qryProgram_LookupPID"
    strQueries(12) = "qryProgram_Physicians"
    strQueries(13) = "qryProgram_ProjectSpecifications"
    strQueries(14) = "qryProjectNames"
    strQueries(15) = "qryReport_FocusGroupAdBoardSchedule"
    strQueries(16) = "qryReport_HonorariaToPay_FGAB"
    strQueries(17) = "qryReport_HonorariaToPay_IDI"
    strQueries(18) = "qryReport_HonorariaToPay_Survey"
    strQueries(19) = "qryReport_InterviewSchedule"
    strQueries(20) = "qryReport_StatusReport"
    strQueries(21) = "qryScreener"
    strQueries(22) = "qrySorted_Employees"
    strQueries(23) = "qrySorted_ExpenseTypes"
    strQueries(24) = "qrySorted_FGABLocations"
    strQueries(25) = "qrySorted_FGABVendors"
    strQueries(26) = "qrySorted_PastProjects"
    strQueries(27) = "qrySorted_TargetTypes"
    strQueries(28) = "qryUpdateCommunication"
    strQueries(29) = "qryProgram_ExportToConfirmit"
    strQueries(30) = "qryProgram_ExportToExcel"
    strQueries(31) = "qryProgram_ExportToMailMerge"
    strQueries(32) = "qryProgram_VendorNames"
   
    ' Forms to hide/show
    Dim strForms(19) As String
    strForms(0) = "frm_SubFrmUpdate"
    strForms(1) = "frm_SubFrmUpdateCommunication"
    strForms(2) = "frmAddNewContact"
    strForms(3) = "frmInterviewSetUp"
    strForms(4) = "frmLookupByPID"
    strForms(5) = "frmRemoveDups"
    strForms(6) = "frmReport_HonorariaToPay_FGAB"
    strForms(7) = "frmReport_HonorariaToPay_IDI"
    strForms(8) = "frmReport_HonorariaToPay_Survey"
    strForms(9) = "frmSubForm_AdditionalProjects"
    strForms(10) = "frmSubForm_AddToHistory_FGAB"
    strForms(11) = "frmSubForm_AddToHistory_IDI"
    strForms(12) = "frmSubForm_AddToHistory_Survey"
    strForms(13) = "frmSubForm_CompareContactsNew_Old"
    strForms(14) = "frmSubForm_Expenses"
    strForms(15) = "frmSubForm_HospitalPhysContacts"
    strForms(16) = "frmSubForm_lMatchLists"
    strForms(17) = "frmSubForm_ResearchSample"
    strForms(18) = "frmUserFields"
    strForms(19) = "subfrmParticipationHistory"
    
    Dim strMod(10) As String
    strMod(0) = "basAssignPIDs"
    strMod(1) = "basBrowseFiles"
    strMod(2) = "basGlobalInfoFunctions"
    strMod(3) = "basInfoFunctions"
    strMod(4) = "basListTables"
    strMod(5) = "basMatchFunctions"
    strMod(6) = "basOpenform"
    strMod(7) = "basRegistryFunctions"
    strMod(8) = "basRemoveDups"
    strMod(9) = "basReportFunctions"
    strMod(10) = "basTableFunctions"
    
 
    
    ' Hide or show tables
    For intCounter = 0 To UBound(strTables)
        CurrentDb.TableDefs(strTables(intCounter)).Attributes = intSetAs
    Next intCounter
    
    ' Hide or show queries
    For intCounter = 0 To UBound(strQueries)
        Application.SetHiddenAttribute acQuery, strQueries(intCounter), bolSetAs
    Next intCounter
    
    ' Hide or show forms
    For intCounter = 0 To UBound(strForms)
        Application.SetHiddenAttribute acForm, strForms(intCounter), bolSetAs
    Next intCounter
    
    ' Hide or show Modules
    For intCounter = 0 To UBound(strMod)
        Application.SetHiddenAttribute acModule, strMod(intCounter), bolSetAs
    Next intCounter
    
    
    Application.SetHiddenAttribute acMacro, "mcrRefreshTableLinks", bolSetAs
    Application.SetHiddenAttribute acReport, "rptRelationships_PhysDB", bolSetAs
    
    
    'CurrentDb.TableDefs("").Attributes = dbHiddenObject
 
End Function

Open in new window

ASKER CERTIFIED SOLUTION
Avatar of Jim Dettman (EE MVE)
Jim Dettman (EE MVE)
Flag of United States of America image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Avatar of AIdoHSG

ASKER

well... that was an easy fix... thank you