From d04b3f521aaa342d7c81fbae600e41a6e5c2478c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Josef=20P=C3=B6tzl?= Date: Tue, 17 Jun 2025 14:16:35 +0200 Subject: [PATCH 1/3] + add install form --- .github/workflows/build-accdb.yml | 2 + .github/workflows/build-release-zip-file.yml | 1 + deployment/AddIn-Config.json | 9 + source/dbs-properties.json | 4 +- source/forms/ACLibImportWizardForm.bas | 30 +- source/forms/InstallAddInForm.bas | 757 +++++++++++++++++++ source/forms/InstallAddInForm.cls | 90 +++ source/macros/Autoexec.bas | 18 - source/modules/AddInConfiguration.cls | 360 +++++++++ source/modules/AddInInstaller.cls | 212 ++++++ source/modules/ApplicationHandler.cls | 1 + source/modules/SqlTools.cls | 6 +- source/modules/WinApiShortcutMenu.cls | 2 +- source/modules/_config_Application.bas | 2 +- source/modules/modMSAccessVcsSupport.bas | 2 + source/modules/modWizardTools.bas | 12 - source/tables/L10n_Dict.xml | 14 +- 17 files changed, 1458 insertions(+), 64 deletions(-) create mode 100644 deployment/AddIn-Config.json create mode 100644 source/forms/InstallAddInForm.bas create mode 100644 source/forms/InstallAddInForm.cls delete mode 100644 source/macros/Autoexec.bas create mode 100644 source/modules/AddInConfiguration.cls create mode 100644 source/modules/AddInInstaller.cls delete mode 100644 source/modules/modWizardTools.bas diff --git a/.github/workflows/build-accdb.yml b/.github/workflows/build-accdb.yml index 42bc6fe..98a61e4 100644 --- a/.github/workflows/build-accdb.yml +++ b/.github/workflows/build-accdb.yml @@ -34,6 +34,8 @@ jobs: with: source-dir: "source" target-dir: "access-add-in" + file-name: "ACLibImportWizard.accda" + app-config: "deployment/AddIn-Config.json" timeout-minutes: 10 - name: "Upload Build Artifact" diff --git a/.github/workflows/build-release-zip-file.yml b/.github/workflows/build-release-zip-file.yml index 1ca37c7..f5171ee 100644 --- a/.github/workflows/build-release-zip-file.yml +++ b/.github/workflows/build-release-zip-file.yml @@ -26,6 +26,7 @@ jobs: source-dir: "source" target-dir: "access-add-in" file-name: "ACLibImportWizard.accda" + app-config: "deployment/AddIn-Config.json" timeout-minutes: 10 - name: "Create versioned ZIP file" diff --git a/deployment/AddIn-Config.json b/deployment/AddIn-Config.json new file mode 100644 index 0000000..ad4a61f --- /dev/null +++ b/deployment/AddIn-Config.json @@ -0,0 +1,9 @@ +{ + "DatabaseProperties": [ + { + "Name": "StartUpForm", + "Type": 10, + "Value": "InstallAddInForm" + } + ] +} diff --git a/source/dbs-properties.json b/source/dbs-properties.json index 38c859a..8239841 100644 --- a/source/dbs-properties.json +++ b/source/dbs-properties.json @@ -101,7 +101,7 @@ "Type": 4 }, "NavPane Width": { - "Value": 557, + "Value": 215, "Type": 4 }, "Never Cache": { @@ -109,7 +109,7 @@ "Type": 4 }, "Option to enable Monaco SQL Editor": { - "Value": 1, + "Value": 0, "Type": 4 }, "Perform Name AutoCorrect": { diff --git a/source/forms/ACLibImportWizardForm.bas b/source/forms/ACLibImportWizardForm.bas index 9622971..786fc6b 100644 --- a/source/forms/ACLibImportWizardForm.bas +++ b/source/forms/ACLibImportWizardForm.bas @@ -908,9 +908,9 @@ Begin Form OverlapFlags =85 TextAlign =1 IMESentenceMode =3 - Left =6143 + Left =6135 Top =960 - Width =1786 + Width =1785 Height =293 TabIndex =8 Name ="txtRepoName" @@ -920,9 +920,9 @@ Begin Form BottomPadding =150 HorizontalAnchor =2 - LayoutCachedLeft =6143 + LayoutCachedLeft =6135 LayoutCachedTop =960 - LayoutCachedWidth =7929 + LayoutCachedWidth =7920 LayoutCachedHeight =1253 ColumnStart =4 ColumnEnd =4 @@ -960,9 +960,9 @@ Begin Form OverlapFlags =85 TextAlign =1 IMESentenceMode =3 - Left =3608 + Left =3600 Top =960 - Width =1703 + Width =1710 Height =293 TabIndex =7 Name ="txtRepoOwner" @@ -971,9 +971,9 @@ Begin Form GroupTable =1 BottomPadding =150 - LayoutCachedLeft =3608 + LayoutCachedLeft =3600 LayoutCachedTop =960 - LayoutCachedWidth =5311 + LayoutCachedWidth =5310 LayoutCachedHeight =1253 ColumnStart =2 ColumnEnd =2 @@ -1031,7 +1031,7 @@ Begin Form OverlapFlags =85 TextAlign =1 IMESentenceMode =3 - Left =8813 + Left =8790 Top =960 Width =1290 Height =293 @@ -1043,9 +1043,9 @@ Begin Form BottomPadding =150 HorizontalAnchor =2 - LayoutCachedLeft =8813 + LayoutCachedLeft =8790 LayoutCachedTop =960 - LayoutCachedWidth =10103 + LayoutCachedWidth =10080 LayoutCachedHeight =1253 ColumnStart =6 ColumnEnd =6 @@ -1058,17 +1058,17 @@ Begin Form Begin Label OverlapFlags =85 TextAlign =3 - Left =7988 + Left =7980 Top =960 - Width =757 + Width =750 Height =293 Name ="Label78" Caption ="Branch:" GroupTable =1 BottomPadding =150 - LayoutCachedLeft =7988 + LayoutCachedLeft =7980 LayoutCachedTop =960 - LayoutCachedWidth =8745 + LayoutCachedWidth =8730 LayoutCachedHeight =1253 ColumnStart =5 ColumnEnd =5 diff --git a/source/forms/InstallAddInForm.bas b/source/forms/InstallAddInForm.bas new file mode 100644 index 0000000..9a2a181 --- /dev/null +++ b/source/forms/InstallAddInForm.bas @@ -0,0 +1,757 @@ +Version =20 +VersionRequired =20 +Begin Form + AllowFilters = NotDefault + PopUp = NotDefault + Modal = NotDefault + RecordSelectors = NotDefault + AutoCenter = NotDefault + NavigationButtons = NotDefault + AllowDeletions = NotDefault + DividingLines = NotDefault + AllowAdditions = NotDefault + AllowDesignChanges = NotDefault + DefaultView =0 + ScrollBars =0 + BorderStyle =3 + PictureAlignment =2 + DatasheetGridlinesBehavior =3 + GridY =10 + Width =7389 + DatasheetFontHeight =11 + ItemSuffix =335 + Left =5550 + Top =3030 + Right =18705 + Bottom =14760 + RecSrcDt = Begin + 0x956642cd6e4ee640 + End + Caption ="Install Add-in" + DatasheetFontName ="Calibri" + OnLoad ="[Event Procedure]" + FilterOnLoad =0 + OrderByOnLoad =0 + OrderByOnLoad =0 + ShowPageMargins =0 + DisplayOnSharePointSite =1 + DatasheetAlternateBackColor =15921906 + DatasheetGridlinesColor12 =0 + FitToScreen =1 + DatasheetBackThemeColorIndex =1 + BorderThemeColorIndex =3 + ThemeFontIndex =1 + ForeThemeColorIndex =0 + AlternateBackThemeColorIndex =1 + AlternateBackShade =95.0 + Begin + Begin Label + BackStyle =0 + FontSize =11 + FontName ="Calibri" + ThemeFontIndex =1 + BackThemeColorIndex =1 + BorderThemeColorIndex =0 + BorderTint =50.0 + ForeThemeColorIndex =0 + ForeTint =60.0 + GridlineThemeColorIndex =1 + GridlineShade =65.0 + End + Begin Line + BorderLineStyle =0 + Width =1701 + BorderThemeColorIndex =0 + GridlineThemeColorIndex =1 + GridlineShade =65.0 + End + Begin Image + BackStyle =0 + OldBorderStyle =0 + BorderLineStyle =0 + SizeMode =3 + PictureAlignment =2 + Width =1701 + Height =1701 + BackThemeColorIndex =1 + BorderThemeColorIndex =1 + BorderShade =65.0 + GridlineThemeColorIndex =1 + GridlineShade =65.0 + End + Begin CommandButton + Width =1701 + Height =283 + FontSize =11 + FontWeight =400 + FontName ="Calibri" + ForeThemeColorIndex =0 + ForeTint =75.0 + GridlineThemeColorIndex =1 + GridlineShade =65.0 + UseTheme =1 + Shape =1 + Gradient =12 + BackThemeColorIndex =4 + BackTint =60.0 + BorderLineStyle =0 + BorderThemeColorIndex =4 + BorderTint =60.0 + ThemeFontIndex =1 + HoverThemeColorIndex =4 + HoverTint =40.0 + PressedThemeColorIndex =4 + PressedShade =75.0 + HoverForeThemeColorIndex =0 + HoverForeTint =75.0 + PressedForeThemeColorIndex =0 + PressedForeTint =75.0 + End + Begin CheckBox + BorderLineStyle =0 + LabelX =230 + LabelY =-30 + BorderThemeColorIndex =1 + BorderShade =65.0 + GridlineThemeColorIndex =1 + GridlineShade =65.0 + End + Begin TextBox + AddColon = NotDefault + FELineBreak = NotDefault + BorderLineStyle =0 + Width =1701 + LabelX =-1701 + FontSize =11 + FontName ="Calibri" + AsianLineBreak =1 + BackThemeColorIndex =1 + BorderThemeColorIndex =1 + BorderShade =65.0 + ThemeFontIndex =1 + ForeThemeColorIndex =0 + ForeTint =75.0 + GridlineThemeColorIndex =1 + GridlineShade =65.0 + End + Begin EmptyCell + Height =240 + GridlineThemeColorIndex =1 + GridlineShade =65.0 + End + Begin Section + Height =7278 + Name ="Detailbereich" + AlternateBackThemeColorIndex =1 + AlternateBackShade =95.0 + BackThemeColorIndex =1 + Begin + Begin TextBox + Locked = NotDefault + OldBorderStyle =0 + OverlapFlags =85 + TextAlign =1 + IMESentenceMode =3 + Left =2070 + Top =3135 + Width =4740 + Height =300 + TabIndex =5 + Name ="txtAddInTitle" + FontName ="Tahoma" + GroupTable =1 + RightPadding =567 + BottomPadding =150 + ShowDatePicker =0 + + LayoutCachedLeft =2070 + LayoutCachedTop =3135 + LayoutCachedWidth =6810 + LayoutCachedHeight =3435 + RowStart =6 + RowEnd =6 + ColumnStart =1 + ColumnEnd =2 + LayoutGroup =1 + ThemeFontIndex =-1 + GroupTable =1 + Begin + Begin Label + OverlapFlags =85 + TextAlign =1 + Left =570 + Top =3135 + Width =1440 + Height =300 + Name ="lbltxtAddInName" + Caption ="Title" + FontName ="Tahoma" + GroupTable =1 + LeftPadding =57 + BottomPadding =150 + HorizontalAnchor =2 + LayoutCachedLeft =570 + LayoutCachedTop =3135 + LayoutCachedWidth =2010 + LayoutCachedHeight =3435 + RowStart =6 + RowEnd =6 + LayoutGroup =1 + ThemeFontIndex =-1 + GroupTable =1 + End + End + End + Begin TextBox + Locked = NotDefault + TabStop = NotDefault + OldBorderStyle =0 + OverlapFlags =85 + TextAlign =1 + IMESentenceMode =3 + Left =2070 + Top =570 + Width =4740 + Height =300 + TabIndex =1 + Name ="txtFileName" + FontName ="Tahoma" + GroupTable =1 + RightPadding =567 + BottomPadding =150 + ShowDatePicker =0 + + LayoutCachedLeft =2070 + LayoutCachedTop =570 + LayoutCachedWidth =6810 + LayoutCachedHeight =870 + ColumnStart =1 + ColumnEnd =2 + LayoutGroup =1 + ThemeFontIndex =-1 + GroupTable =1 + Begin + Begin Label + OverlapFlags =85 + TextAlign =1 + Left =570 + Top =570 + Width =1440 + Height =300 + Name ="lblFileName" + Caption ="File name" + FontName ="Tahoma" + GroupTable =1 + LeftPadding =57 + BottomPadding =150 + HorizontalAnchor =2 + LayoutCachedLeft =570 + LayoutCachedTop =570 + LayoutCachedWidth =2010 + LayoutCachedHeight =870 + LayoutGroup =1 + ThemeFontIndex =-1 + GroupTable =1 + End + End + End + Begin TextBox + Locked = NotDefault + OldBorderStyle =0 + OverlapFlags =85 + TextAlign =1 + IMESentenceMode =3 + Left =2070 + Top =3615 + Width =4740 + Height =300 + TabIndex =6 + Name ="txtAddInAuthor" + FontName ="Tahoma" + GroupTable =1 + RightPadding =567 + BottomPadding =150 + ShowDatePicker =0 + + LayoutCachedLeft =2070 + LayoutCachedTop =3615 + LayoutCachedWidth =6810 + LayoutCachedHeight =3915 + RowStart =7 + RowEnd =7 + ColumnStart =1 + ColumnEnd =2 + LayoutGroup =1 + ThemeFontIndex =-1 + GroupTable =1 + Begin + Begin Label + OverlapFlags =85 + TextAlign =1 + Left =570 + Top =3615 + Width =1440 + Height =300 + Name ="lblAddInAuthor" + Caption ="Author" + FontName ="Tahoma" + GroupTable =1 + LeftPadding =57 + BottomPadding =150 + HorizontalAnchor =2 + LayoutCachedLeft =570 + LayoutCachedTop =3615 + LayoutCachedWidth =2010 + LayoutCachedHeight =3915 + RowStart =7 + RowEnd =7 + LayoutGroup =1 + ThemeFontIndex =-1 + GroupTable =1 + End + End + End + Begin TextBox + Locked = NotDefault + OldBorderStyle =0 + OverlapFlags =85 + TextAlign =1 + IMESentenceMode =3 + Left =2070 + Top =4095 + Width =4740 + Height =300 + TabIndex =7 + Name ="txtAddInCompany" + FontName ="Tahoma" + GroupTable =1 + RightPadding =567 + BottomPadding =150 + ShowDatePicker =0 + + LayoutCachedLeft =2070 + LayoutCachedTop =4095 + LayoutCachedWidth =6810 + LayoutCachedHeight =4395 + RowStart =8 + RowEnd =8 + ColumnStart =1 + ColumnEnd =2 + LayoutGroup =1 + ThemeFontIndex =-1 + GroupTable =1 + Begin + Begin Label + OverlapFlags =85 + TextAlign =1 + Left =570 + Top =4095 + Width =1440 + Height =300 + Name ="lblAddInCompany" + Caption ="Company" + FontName ="Tahoma" + GroupTable =1 + LeftPadding =57 + BottomPadding =150 + HorizontalAnchor =2 + LayoutCachedLeft =570 + LayoutCachedTop =4095 + LayoutCachedWidth =2010 + LayoutCachedHeight =4395 + RowStart =8 + RowEnd =8 + LayoutGroup =1 + ThemeFontIndex =-1 + GroupTable =1 + End + End + End + Begin TextBox + Locked = NotDefault + OldBorderStyle =0 + OverlapFlags =85 + TextAlign =1 + IMESentenceMode =3 + Left =2070 + Top =4575 + Width =4740 + Height =1125 + TabIndex =8 + Name ="txtAddInComment" + FontName ="Tahoma" + GroupTable =1 + RightPadding =567 + BottomPadding =150 + VerticalAnchor =2 + ShowDatePicker =0 + + LayoutCachedLeft =2070 + LayoutCachedTop =4575 + LayoutCachedWidth =6810 + LayoutCachedHeight =5700 + RowStart =9 + RowEnd =9 + ColumnStart =1 + ColumnEnd =2 + LayoutGroup =1 + ThemeFontIndex =-1 + GroupTable =1 + Begin + Begin Label + OverlapFlags =85 + TextAlign =1 + Left =570 + Top =4575 + Width =1440 + Height =1125 + Name ="lblAddInComment" + Caption ="Comment" + FontName ="Tahoma" + GroupTable =1 + LeftPadding =57 + BottomPadding =150 + HorizontalAnchor =2 + VerticalAnchor =2 + LayoutCachedLeft =570 + LayoutCachedTop =4575 + LayoutCachedWidth =2010 + LayoutCachedHeight =5700 + RowStart =9 + RowEnd =9 + LayoutGroup =1 + ThemeFontIndex =-1 + GroupTable =1 + End + End + End + Begin CommandButton + OverlapFlags =85 + Left =570 + Top =6240 + Width =6240 + Height =450 + TabIndex =10 + Name ="cmdInstallAddIn" + Caption ="Install Add-in" + OnClick ="[Event Procedure]" + GroupTable =1 + LeftPadding =57 + RightPadding =567 + BottomPadding =567 + HorizontalAnchor =2 + + LayoutCachedLeft =570 + LayoutCachedTop =6240 + LayoutCachedWidth =6810 + LayoutCachedHeight =6690 + RowStart =11 + RowEnd =11 + ColumnEnd =2 + LayoutGroup =1 + GroupTable =1 + End + Begin TextBox + Locked = NotDefault + OldBorderStyle =0 + OverlapFlags =85 + TextAlign =1 + IMESentenceMode =3 + Left =2070 + Top =2340 + Width =4740 + Height =291 + TabIndex =4 + Name ="txtAddInStartFunction" + FontName ="Tahoma" + GroupTable =1 + RightPadding =567 + BottomPadding =150 + ShowDatePicker =0 + + LayoutCachedLeft =2070 + LayoutCachedTop =2340 + LayoutCachedWidth =6810 + LayoutCachedHeight =2631 + RowStart =4 + RowEnd =4 + ColumnStart =1 + ColumnEnd =2 + LayoutGroup =1 + ThemeFontIndex =-1 + GroupTable =1 + Begin + Begin Label + OverlapFlags =85 + TextAlign =1 + Left =570 + Top =2340 + Width =1440 + Height =291 + Name ="lblAddInStartFunction" + Caption ="Start Function" + FontName ="Tahoma" + GroupTable =1 + LeftPadding =57 + BottomPadding =150 + HorizontalAnchor =2 + LayoutCachedLeft =570 + LayoutCachedTop =2340 + LayoutCachedWidth =2010 + LayoutCachedHeight =2631 + RowStart =4 + RowEnd =4 + LayoutGroup =1 + ThemeFontIndex =-1 + GroupTable =1 + End + End + End + Begin TextBox + Locked = NotDefault + OldBorderStyle =0 + OverlapFlags =85 + TextAlign =1 + IMESentenceMode =3 + Left =2070 + Top =1860 + Width =4740 + Height =300 + TabIndex =3 + Name ="txtAddInRegPathName" + FontName ="Tahoma" + GroupTable =1 + RightPadding =567 + BottomPadding =150 + ShowDatePicker =0 + + LayoutCachedLeft =2070 + LayoutCachedTop =1860 + LayoutCachedWidth =6810 + LayoutCachedHeight =2160 + RowStart =3 + RowEnd =3 + ColumnStart =1 + ColumnEnd =2 + LayoutGroup =1 + ThemeFontIndex =-1 + GroupTable =1 + Begin + Begin Label + OverlapFlags =85 + TextAlign =1 + Left =570 + Top =1860 + Width =1440 + Height =300 + Name ="Bezeichnungsfeld105" + Caption ="Name" + FontName ="Tahoma" + GroupTable =1 + LeftPadding =57 + BottomPadding =150 + HorizontalAnchor =2 + LayoutCachedLeft =570 + LayoutCachedTop =1860 + LayoutCachedWidth =2010 + LayoutCachedHeight =2160 + RowStart =3 + RowEnd =3 + LayoutGroup =1 + ThemeFontIndex =-1 + GroupTable =1 + End + End + End + Begin Label + FontUnderline = NotDefault + OverlapFlags =85 + TextAlign =1 + Left =570 + Top =1530 + Width =6240 + Height =300 + FontWeight =700 + Name ="Bezeichnungsfeld112" + Caption ="USysRegInfo" + FontName ="Tahoma" + GroupTable =1 + LeftPadding =57 + RightPadding =567 + BottomPadding =0 + HorizontalAnchor =2 + LayoutCachedLeft =570 + LayoutCachedTop =1530 + LayoutCachedWidth =6810 + LayoutCachedHeight =1830 + RowStart =2 + RowEnd =2 + ColumnEnd =2 + LayoutGroup =1 + ThemeFontIndex =-1 + GroupTable =1 + End + Begin Label + FontUnderline = NotDefault + OverlapFlags =85 + TextAlign =1 + Left =570 + Top =2805 + Width =6240 + Height =300 + FontWeight =700 + Name ="Bezeichnungsfeld150" + Caption ="Database properties" + FontName ="Tahoma" + GroupTable =1 + LeftPadding =57 + RightPadding =567 + BottomPadding =0 + HorizontalAnchor =2 + LayoutCachedLeft =570 + LayoutCachedTop =2805 + LayoutCachedWidth =6810 + LayoutCachedHeight =3105 + RowStart =5 + RowEnd =5 + ColumnEnd =2 + LayoutGroup =1 + ThemeFontIndex =-1 + GroupTable =1 + End + Begin TextBox + Locked = NotDefault + OldBorderStyle =0 + OverlapFlags =85 + TextAlign =1 + IMESentenceMode =3 + Left =2070 + Top =1050 + Width =4740 + Height =300 + TabIndex =2 + Name ="txtAppTitle" + FontName ="Tahoma" + GroupTable =1 + RightPadding =567 + BottomPadding =150 + ShowDatePicker =0 + + LayoutCachedLeft =2070 + LayoutCachedTop =1050 + LayoutCachedWidth =6810 + LayoutCachedHeight =1350 + RowStart =1 + RowEnd =1 + ColumnStart =1 + ColumnEnd =2 + LayoutGroup =1 + ThemeFontIndex =-1 + GroupTable =1 + Begin + Begin Label + OverlapFlags =85 + TextAlign =1 + Left =570 + Top =1050 + Width =1440 + Height =300 + Name ="Label247" + Caption ="AppTitle" + FontName ="Tahoma" + GroupTable =1 + LeftPadding =57 + BottomPadding =150 + HorizontalAnchor =2 + LayoutCachedLeft =570 + LayoutCachedTop =1050 + LayoutCachedWidth =2010 + LayoutCachedHeight =1350 + RowStart =1 + RowEnd =1 + LayoutGroup =1 + ThemeFontIndex =-1 + GroupTable =1 + End + End + End + Begin CommandButton + Transparent = NotDefault + OverlapFlags =85 + Width =0 + Height =0 + Name ="sysFirst" + Caption ="-" + + End + Begin CheckBox + OverlapFlags =85 + Left =3015 + Top =5880 + Width =3795 + Height =300 + TabIndex =9 + Name ="cbCompileAddIn" + DefaultValue ="False" + GroupTable =1 + RightPadding =567 + + LayoutCachedLeft =3015 + LayoutCachedTop =5880 + LayoutCachedWidth =6810 + LayoutCachedHeight =6180 + RowStart =10 + RowEnd =10 + ColumnStart =2 + ColumnEnd =2 + LayoutGroup =1 + GroupTable =1 + Begin + Begin Label + OverlapFlags =85 + TextAlign =1 + Left =570 + Top =5880 + Width =2415 + Height =300 + ForeColor =0 + Name ="Label325" + Caption ="Install Add-in as accde" + GroupTable =1 + LeftPadding =57 + RightPadding =0 + HorizontalAnchor =2 + LayoutCachedLeft =570 + LayoutCachedTop =5880 + LayoutCachedWidth =2985 + LayoutCachedHeight =6180 + RowStart =10 + RowEnd =10 + ColumnEnd =1 + LayoutGroup =1 + ForeTint =100.0 + GroupTable =1 + End + End + End + Begin Label + OverlapFlags =85 + TextAlign =3 + Left =114 + Top =6916 + Width =7139 + Height =223 + FontSize =8 + Name ="lblVersionInfo" + HorizontalAnchor =2 + LayoutCachedLeft =114 + LayoutCachedTop =6916 + LayoutCachedWidth =7253 + LayoutCachedHeight =7139 + End + End + End + End +End +CodeBehindForm +' See "InstallAddInForm.cls" diff --git a/source/forms/InstallAddInForm.cls b/source/forms/InstallAddInForm.cls new file mode 100644 index 0000000..11ac661 --- /dev/null +++ b/source/forms/InstallAddInForm.cls @@ -0,0 +1,90 @@ +Attribute VB_GlobalNameSpace = False +Attribute VB_Creatable = True +Attribute VB_PredeclaredId = True +Attribute VB_Exposed = False +'--------------------------------------------------------------------------------------- +' Form: _codelib.addins.shared.InstallAddInForm +'--------------------------------------------------------------------------------------- +' +' Start form to install Access add-in +' +' Author: +' Josef Poetzl +' +'--------------------------------------------------------------------------------------- + +'--------------------------------------------------------------------------------------- +' +' _codelib/addins/shared/InstallAddInForm.frm +' _codelib/license.bas +' _codelib/addins/shared/AddInConfiguration.cls +' _codelib/addins/shared/AddInInstaller.cls +' +'--------------------------------------------------------------------------------------- +' +Option Compare Database +Option Explicit + +Private m_Configuration As AddInConfiguration + +Private Property Get Configuration() As AddInConfiguration + If m_Configuration Is Nothing Then + Set m_Configuration = New AddInConfiguration + End If + Set Configuration = m_Configuration +End Property + +Private Sub Form_Load() + + With CurrentApplication + Me.lblVersionInfo.Caption = .ApplicationFullName & " " & ChrW(&H2022) & " Version " & CurrentApplication.Version + End With + + LoadDataFromConfiguration True + +End Sub + +Private Sub LoadDataFromConfiguration(ByVal LoadFromFile As Boolean) + + If LoadFromFile Then + Configuration.LoadFromCurrentFile + End If + + With Configuration + + Me.txtFileName.Value = .FileName + Me.txtAppTitle.Value = .AppTitle + + Me.txtAddInTitle.Value = .Title + Me.txtAddInAuthor.Value = .Author + Me.txtAddInCompany.Value = .Company + Me.txtAddInComment.Value = .Comments + + Me.txtAddInRegPathName.Value = .AddInRegPathName + Me.txtAddInStartFunction.Value = .AddInStartFunction + + End With + +End Sub + +Private Sub cmdInstallAddIn_Click() + + Dim Success As Boolean + Dim InstallMsg As String + + Me.sysFirst.SetFocus + Me.cmdInstallAddIn.Enabled = False + + With New AddInInstaller + Success = .InstallAddIn(m_Configuration, Nz(Me.cbCompileAddIn.Value, False), InstallMsg) + End With + + If Len(InstallMsg) > 0 Then + VBA.MsgBox InstallMsg, vbInformation, m_Configuration.AddInRegPathName + End If + + If Success Then + Application.Quit + End If + +End Sub diff --git a/source/macros/Autoexec.bas b/source/macros/Autoexec.bas deleted file mode 100644 index 09dd41f..0000000 --- a/source/macros/Autoexec.bas +++ /dev/null @@ -1,18 +0,0 @@ -Version =196611 -ColumnsShown =0 -Begin - Action ="RunCode" - Comment ="base/Autoexec.macro" - Argument ="CheckApplicationStartUpMethod()" -End -Begin - Comment ="_AXL:\015\012<codelib><file>" -End -Begin - Comment ="_AXL:base/Autoexec.macro</file></codelib>CheckApplicationStartUpMethod()" -End diff --git a/source/modules/AddInConfiguration.cls b/source/modules/AddInConfiguration.cls new file mode 100644 index 0000000..d788782 --- /dev/null +++ b/source/modules/AddInConfiguration.cls @@ -0,0 +1,360 @@ +VERSION 1.0 CLASS +BEGIN + MultiUse = -1 'True +END +Attribute VB_Name = "AddInConfiguration" +Attribute VB_GlobalNameSpace = False +Attribute VB_Creatable = False +Attribute VB_PredeclaredId = False +Attribute VB_Exposed = False +'--------------------------------------------------------------------------------------- +' Class: _codelib.addins.shared.AddInConfiguration +'--------------------------------------------------------------------------------------- +' +' Manage Access Add-In configuration settings +' +' Author: +' Josef Poetzl +' +'--------------------------------------------------------------------------------------- + +'--------------------------------------------------------------------------------------- +' +' _codelib/addins/shared/AddInConfiguration.cls +' _codelib/license.bas +' base/ApplicationHandler.cls +' DAO50{00025E01-0000-0000-C000-000000000046} +' +'--------------------------------------------------------------------------------------- +' +Option Compare Database +Option Explicit + +Private m_AppTitle As String +Private m_Title As String +Private m_Author As String +Private m_Company As String +Private m_Comments As String + +Private m_AddInRegPathName As String +Private m_AddInRegFilePath As String +Private m_AddInStartFunction As String + +Private m_InsertRecordset As DAO.Recordset + +Public Property Get FileName() As String + If Len(m_AddInRegFilePath) > 0 Then + FileName = Mid(m_AddInRegFilePath, InStrRev(m_AddInRegFilePath, "\", , vbTextCompare) + 1) + End If +End Property + +Public Property Let FileName(ByVal NewValue As String) + If Len(NewValue) > 0 Then + AddInRegFilePath = "|ACCDIR\" & NewValue + End If +End Property + +Public Property Get AppTitle() As String + AppTitle = m_AppTitle +End Property + +Public Property Let AppTitle(ByVal NewValue As String) + m_AppTitle = NewValue +End Property + +Public Property Get Title() As String + Title = m_Title +End Property + +Public Property Let Title(ByVal NewValue As String) + m_Title = NewValue +End Property + +Public Property Get Author() As String + Author = m_Author +End Property + +Public Property Let Author(ByVal NewValue As String) + m_Author = NewValue +End Property + +Public Property Get Company() As String + Company = m_Company +End Property + +Public Property Let Company(ByVal NewValue As String) + m_Company = NewValue +End Property + +Public Property Get Comments() As String + Comments = m_Comments +End Property + +Public Property Let Comments(ByVal NewValue As String) + m_Comments = NewValue +End Property + +Public Property Get AddInRegPathName() As String + AddInRegPathName = m_AddInRegPathName +End Property + +Public Property Let AddInRegPathName(ByVal NewValue As String) + m_AddInRegPathName = NewValue +End Property + +Public Property Get AddInStartFunction() As String + AddInStartFunction = m_AddInStartFunction +End Property + +Public Property Let AddInStartFunction(ByVal NewValue As String) + m_AddInStartFunction = NewValue +End Property + +Public Property Get AddInRegFilePath() As String + AddInRegFilePath = m_AddInRegFilePath +End Property + +Public Property Let AddInRegFilePath(ByVal NewValue As String) + m_AddInRegFilePath = NewValue +End Property + +Public Sub LoadFromCurrentFile() + + If CurrentDb Is Nothing Then + Exit Sub + End If + + LoadDataFromUSysRegInfo + LoadDataFromDatabase + +End Sub + +Private Sub LoadDataFromDatabase() + + Dim db As DAO.Database + Set db = CurrentDb + + m_AppTitle = GetDbProperty(db, "AppTitle", vbNullString) + + If Len(FileName) = 0 Then + FileName = Replace(CurrentProject.Name, ".accdb", ".accda", , , vbTextCompare) + End If + + m_Title = GetDocProperty(db, "Title", vbNullString) + m_Author = GetDocProperty(db, "Author", vbNullString) + m_Company = GetDocProperty(db, "Company", vbNullString) + m_Comments = GetDocProperty(db, "Comments", vbNullString) + +End Sub + +Private Function GetDbProperty(ByVal PropDb As DAO.Database, PropertyName As String, Optional ByVal ValueIfNotExists As Variant = Null) As Variant + + On Error Resume Next + + GetDbProperty = PropDb.Properties(PropertyName) + If Err.Number <> 0 Then + Err.Clear + GetDbProperty = ValueIfNotExists + End If + +End Function + +Private Function GetDocProperty(ByVal PropDb As DAO.Database, PropertyName As String, Optional ByVal ValueIfNotExists As Variant = Null) As String + +On Error Resume Next + + Dim PropValue As String + + PropValue = PropDb.Containers("Databases").Documents("SummaryInfo").Properties(PropertyName) + If Err.Number <> 0 Then + Err.Clear + PropValue = ValueIfNotExists + End If + + GetDocProperty = PropValue + +End Function + +Private Sub LoadDataFromUSysRegInfo() +'Subkey Type ValName Value +'HKEY_CURRENT_ACCESS_PROFILE\Menu Add-Ins\ACLib Access Add-In Builder 0 +'HKEY_CURRENT_ACCESS_PROFILE\Menu Add-Ins\ACLib Access Add-In Builder 1 Expression =LoadAddIn() +'HKEY_CURRENT_ACCESS_PROFILE\Menu Add-Ins\ACLib Access Add-In Builder 1 Library |ACCDIR\ACLibAccessAddInBuilder.accda + + Dim AddInRegPathName As String + Dim AddInStartFunction As String + + Dim ValNameField As DAO.Field + Dim SubkeyField As DAO.Field + Dim ValueField As DAO.Field + + If Not Nz(DLookup("True", "MSysObjects", "[Name]='USysRegInfo'"), False) Then + Exit Sub + End If + + With CurrentDb.OpenRecordset("select * from USysRegInfo Order By Subkey, ValName") + If Not .EOF Then + + Set SubkeyField = .Fields("Subkey") + Set ValNameField = .Fields("ValName") + Set ValueField = .Fields("Value") + + Do While Not .EOF + If IsNull(ValNameField.Value) Then + With .Fields("Subkey") + m_AddInRegPathName = Mid(.Value, InStrRev(.Value, "\", , vbTextCompare) + 1) + End With + + ElseIf ValNameField.Value = "Expression" Then + m_AddInStartFunction = Nz(ValueField.Value, vbNullString) + + ElseIf ValNameField.Value = "Library" Then + m_AddInRegFilePath = Nz(ValueField.Value, vbNullString) + + End If + .MoveNext + Loop + End If + .Close + End With + +End Sub + +Public Sub SaveToCurrentFile() + + If CurrentDb Is Nothing Then + Exit Sub + End If + + SaveDataToUSysRegInfo + SaveDataToDatabase + +End Sub + +Private Sub SaveDataToDatabase() + + Dim db As DAO.Database + Set db = CurrentDb + + SetDbProperty db, "AppTitle", m_AppTitle + + SetDocProperty db, "Title", m_Title + SetDocProperty db, "Author", m_Author + SetDocProperty db, "Company", m_Company + SetDocProperty db, "Comments", m_Comments + +End Sub + +Private Sub SetDbProperty(ByVal PropDb As DAO.Database, PropertyName As String, ByVal NewValue As Variant) + +On Error GoTo HandleErr + + PropDb.Properties(PropertyName).Value = Nz(NewValue, vbNullString) + +ExitHere: + Exit Sub + +HandleErr: + If Err.Number = 3270 Then + PropDb.Properties.Append PropDb.CreateProperty(PropertyName, dbText, NewValue) + Resume ExitHere + End If + + HandleError Err.Number, Err.Source, Err.Description, aclibErrRaise + +End Sub + +Private Sub SetDocProperty(ByVal PropDb As DAO.Database, PropertyName As String, ByVal NewValue As Variant) + +On Error GoTo HandleErr + + PropDb.Containers("Databases").Documents("SummaryInfo").Properties(PropertyName).Value = Nz(NewValue, vbNullString) + +ExitHere: + Exit Sub + +HandleErr: + If Err.Number = 3270 Then + If Len(NewValue) > 0 Then + PropDb.Containers("Databases").Documents("SummaryInfo").Properties.Append PropDb.CreateProperty(PropertyName, dbText, NewValue) + End If + Resume ExitHere + End If + + HandleError Err.Number, Err.Source, Err.Description, aclibErrRaise + +End Sub + +Private Sub SaveDataToUSysRegInfo() +'Subkey Type ValName Value +'HKEY_CURRENT_ACCESS_PROFILE\Menu Add-Ins\ACLib Access Add-In Builder 0 +'HKEY_CURRENT_ACCESS_PROFILE\Menu Add-Ins\ACLib Access Add-In Builder 1 Expression =LoadAddIn() +'HKEY_CURRENT_ACCESS_PROFILE\Menu Add-Ins\ACLib Access Add-In Builder 1 Library |ACCDIR\ACLibAccessAddInBuilder.accda +' + Dim SubKey As String + Dim Expression As String + Dim Library As String + + If Len(m_AddInRegPathName) = 0 Then + MsgBox "Enter USysRegInfo-Name first!" + Exit Sub + End If + SubKey = "HKEY_CURRENT_ACCESS_PROFILE\Menu Add-Ins\" & m_AddInRegPathName + + + If Len(m_AddInStartFunction) = 0 Then + m_AddInStartFunction = "=LoadAddIn()" + End If + Expression = m_AddInStartFunction + If Left(Expression, 1) <> "=" Then + Expression = "=" & Expression + End If + If Right(Expression, 1) <> ")" Then + Expression = Expression & "()" + End If + + Library = m_AddInRegFilePath + + If Not Nz(DLookup("True", "MSysObjects", "[Name]='USysRegInfo'"), False) Then + CreateTableUSysRegInfo + End If + + Dim db As DAO.Database + Set db = CurrentDb + + db.Execute "delete from USysRegInfo where Type = 0 or Type = 1 and ValName in ('Expression', 'Library')" + + Dim rs As DAO.Recordset + Set rs = db.OpenRecordset("select * from USysRegInfo") + + InsertUSysRegInfoRecord rs, SubKey, 0, Null, Null + InsertUSysRegInfoRecord rs, SubKey, 1, "Expression", Expression + InsertUSysRegInfoRecord rs, SubKey, 1, "Library", Library + + rs.Close + +End Sub + +Private Sub InsertUSysRegInfoRecord(ByVal RegInfoRs As DAO.Recordset, ByVal SubKey As String, ByVal TypeNo As Long, ByVal ValName As Variant, ByVal NewValue As Variant) + + With RegInfoRs + .AddNew + .Fields("Subkey").Value = SubKey + .Fields("Type").Value = TypeNo + .Fields("ValName").Value = ValName + .Fields("Value").Value = NewValue + .Update + End With + +End Sub + +Private Sub CreateTableUSysRegInfo() + + Dim CreateTableDDL As String + + CreateTableDDL = "create Table USysRegInfo (" & _ + " Subkey nvarchar(255), Type int, ValName nvarchar(255), [Value] nvarchar(255))" + + CurrentProject.Connection.Execute CreateTableDDL + +End Sub diff --git a/source/modules/AddInInstaller.cls b/source/modules/AddInInstaller.cls new file mode 100644 index 0000000..3a40bc5 --- /dev/null +++ b/source/modules/AddInInstaller.cls @@ -0,0 +1,212 @@ +VERSION 1.0 CLASS +BEGIN + MultiUse = -1 'True +END +Attribute VB_Name = "AddInInstaller" +Attribute VB_GlobalNameSpace = False +Attribute VB_Creatable = False +Attribute VB_PredeclaredId = False +Attribute VB_Exposed = False +'--------------------------------------------------------------------------------------- +' Class: _codelib.addins.shared.AddInInstaller +'--------------------------------------------------------------------------------------- +' +' Install Access add-in +' +' Author: +' Josef Poetzl +' +'--------------------------------------------------------------------------------------- + +'--------------------------------------------------------------------------------------- +' +' _codelib/addins/shared/AddInInstaller.cls +' _codelib/license.bas +' _codelib/addins/shared/AddInConfiguration.cls +' DAO50{00025E01-0000-0000-C000-000000000046} +' +'--------------------------------------------------------------------------------------- +' +Option Compare Database +Option Explicit + +Private m_ConfigData As AddInConfiguration + +Public Function InstallAddIn(ByVal AddInConfigData As AddInConfiguration, _ + Optional ByVal CompileAddIn As Boolean = False, _ + Optional ByRef CompletedMsg As String) As Boolean + + Dim AddInFileInstalled As Boolean + + Set m_ConfigData = AddInConfigData + + If CompileAddIn Then + AddInFileInstalled = CreateAccde(GetSourceFileFullName, GetDestFileFullName) + If AddInFileInstalled Then + CompletedMsg = "Add-In was compiled and saved in '" + GetAddInLocation + "'." + Else + CompletedMsg = "Error! Compiled file was not created." + End If + Else + DeleteAddInFiles + AddInFileInstalled = TryFileCopy(GetSourceFileFullName, GetDestFileFullName) + If AddInFileInstalled Then + CompletedMsg = "Add-In was saved in '" + GetAddInLocation + "'." + Else + CompletedMsg = "Error! File was not copied." + End If + End If + + If AddInFileInstalled = True Then + RegisterAddIn GetDestFileFullName() + End If + + InstallAddIn = AddInFileInstalled + +End Function + +Public Property Get AddInName() As String + AddInName = m_ConfigData.AddInRegPathName +End Property + +Public Property Get AddInFileName() As String + AddInFileName = m_ConfigData.FileName +End Property + +Public Property Get MsgBoxTitle() As String + MsgBoxTitle = "Install " & AddInName +End Property + +Function GetSourceFileFullName() + GetSourceFileFullName = CurrentDb.Name +End Function + +Function GetDestFileFullName() + GetDestFileFullName = GetAddInLocation & AddInFileName +End Function + +Function GetAddInLocation() + GetAddInLocation = GetAppDataLocation & "Microsoft\AddIns\" +End Function + +Function GetAppDataLocation() + GetAppDataLocation = Environ("APPDATA") & "\" +End Function + +Function DeleteAddInFiles() + + Dim DestFile As String + DestFile = GetDestFileFullName() + DeleteFile DestFile + +End Function + +Function DeleteFile(File2Delete) + If FileTools.FileExists(File2Delete) Then + Kill File2Delete + End If +End Function + +Private Function TryFileCopy(ByVal SourceFilePath As String, ByVal DestFilePath As String) As Boolean + +On Error Resume Next + + With CreateObject("Scripting.FileSystemObject") + If .FileExists(DestFilePath) Then + .DeleteFile DestFilePath, True + End If + .CopyFile SourceFilePath, DestFilePath, True + End With + + If Err.Number <> 0 Then + Err.Clear + TryFileCopy = False + Else + TryFileCopy = True + End If + +End Function + +Function CreateAccde(ByVal SourceFilePath As String, ByVal DestFilePath As String) As Boolean + + Dim FileToCompile As String + Dim AccessApp As Access.Application + + DeleteAddInFiles + + FileToCompile = DestFilePath & ".accdb" + If Not TryFileCopy(SourceFilePath, FileToCompile) Then + Exit Function + End If + + Set AccessApp = CreateObject("Access.Application") + AccessApp.SysCmd 603, (FileToCompile), (DestFilePath) + + DeleteFile FileToCompile + + CreateAccde = True + +End Function + + +'################################################## +' Register Menu Add-In + +Function RegisterAddIn(AddInFile) + + Dim AddInDb As DAO.Database + Dim rst As DAO.Recordset + Dim ItemValue As Variant + Dim wsh As Object + + Set AddInDb = DBEngine.OpenDatabase(AddInFile) + + Set wsh = CreateObject("WScript.Shell") + Set rst = AddInDb.OpenRecordset("select Subkey, ValName, Type, Value from USysRegInfo where ValName > '' Order By ValName", 8) 'dbOpenForwardOnly=8 + Do While Not rst.EOF + ItemValue = rst.Fields("Value").Value + If Len(ItemValue) > 0 Then + If InStr(1, ItemValue, "|ACCDIR") > 0 Then + ItemValue = AddInDb.Name + End If + End If + RegisterMenuAddInItem wsh, rst.Fields("Subkey").Value, rst.Fields("ValName").Value, rst.Fields("Type").Value, ItemValue + rst.MoveNext + Loop + rst.Close + + AddInDb.Close + +End Function + +Function RegisterMenuAddInItem(wsh, ByVal SubKey, ByVal ItemValName, ByVal RegType, ByVal ItemValue) + Dim RegName + RegName = GetRegistryPath(SubKey) + With wsh + If Len(ItemValName) > 0 Then + RegName = RegName & "\" & ItemValName + End If + .RegWrite RegName, ItemValue, GetRegTypeString(RegType) + End With +End Function + +Function GetRegTypeString(ByVal RegType) + Select Case RegType + Case 1 + GetRegTypeString = "REG_SZ" + Case 4 + GetRegTypeString = "REG_DWORD" + Case 0 + GetRegTypeString = vbNullString + Case Else + Err.Raise vbObjectError, "GetRegTypeString", "RegType not supported" + End Select +End Function + +Function GetRegistryPath(SubKey) + GetRegistryPath = Replace(SubKey, "HKEY_CURRENT_ACCESS_PROFILE", HkeyCurrentAccessProfileRegistryPath()) +End Function + +Function HkeyCurrentAccessProfileRegistryPath() + HkeyCurrentAccessProfileRegistryPath = "HKCU\SOFTWARE\Microsoft\Office\" & Access.Application.Version & "\Access" +End Function diff --git a/source/modules/ApplicationHandler.cls b/source/modules/ApplicationHandler.cls index 9306eba..315dad1 100644 --- a/source/modules/ApplicationHandler.cls +++ b/source/modules/ApplicationHandler.cls @@ -484,6 +484,7 @@ Private Sub SetAppDbProperty(ByVal PropName As String, ByVal PropType As Long, B Set db = AppDb Set PropCol = db.Properties + PropCol.Refresh If DbPropertyExists(PropCol, PropName) Then If Len(PropValue) = 0 Or IsNull(PropValue) Then db.Properties.Delete PropName diff --git a/source/modules/SqlTools.cls b/source/modules/SqlTools.cls index 997606c..a069c0c 100644 --- a/source/modules/SqlTools.cls +++ b/source/modules/SqlTools.cls @@ -105,7 +105,7 @@ End Enum ' Group: Class support '--------------------------------------------------------------------------------------- -' Function: SelectDialect +' Function: FromDialect '--------------------------------------------------------------------------------------- ' ' Create a new instance with basic settings of the selected dialect @@ -891,9 +891,9 @@ Friend Function GetRelationalOperatorString(ByRef RelationalOperator As SqlRelat op = RelationalOperator Xor SQL_Not - If op = SqlRelationalOperators.SQL_Equal Then ' => "=" zu "<>" .. null berücksichtigen? + If op = SqlRelationalOperators.SQL_Equal Then ' => "=" zu "<>" .. null ber�cksichtigen? RelationalOperator = SQL_LessThan + SQL_GreaterThan - ElseIf op = SQL_GreaterThan + SQL_LessThan Then ' => "<>" zu "=" .. null berücksichtigen? + ElseIf op = SQL_GreaterThan + SQL_LessThan Then ' => "<>" zu "=" .. null ber�cksichtigen? RelationalOperator = SQL_Equal Else RelationalOperator = RelationalOperator Xor SQL_Not diff --git a/source/modules/WinApiShortcutMenu.cls b/source/modules/WinApiShortcutMenu.cls index b3187f9..d2c52a3 100644 --- a/source/modules/WinApiShortcutMenu.cls +++ b/source/modules/WinApiShortcutMenu.cls @@ -221,7 +221,7 @@ Private Declare Function TranslateMessage _ Private Declare Function GetWindowRect _ Lib "user32.dll" ( _ ByVal Hwnd As Long, _ - ByRef lpRect As Rect _ + ByRef lpRect As RECT _ ) As Long Private Declare Function SetMenuDefaultItem _ diff --git a/source/modules/_config_Application.bas b/source/modules/_config_Application.bas index 63551fd..2c6169c 100644 --- a/source/modules/_config_Application.bas +++ b/source/modules/_config_Application.bas @@ -13,7 +13,7 @@ Option Compare Database Option Explicit 'Versionsnummer -Private Const APPLICATION_VERSION As String = "1.4.1" +Private Const APPLICATION_VERSION As String = "1.4.2" #Const USE_CLASS_ApplicationHandler_AppFile = 1 #Const USE_CLASS_ApplicationHandler_DirTextbox = 1 diff --git a/source/modules/modMSAccessVcsSupport.bas b/source/modules/modMSAccessVcsSupport.bas index 631e534..3edda01 100644 --- a/source/modules/modMSAccessVcsSupport.bas +++ b/source/modules/modMSAccessVcsSupport.bas @@ -11,4 +11,6 @@ Public Sub VcsRunBeforeExport() DBEngine.Idle dbRefreshCache End If + CurrentApplication.SetApplicationProperty "StartUpForm", vbNullString + End Sub diff --git a/source/modules/modWizardTools.bas b/source/modules/modWizardTools.bas deleted file mode 100644 index 581b518..0000000 --- a/source/modules/modWizardTools.bas +++ /dev/null @@ -1,12 +0,0 @@ -Attribute VB_Name = "modWizardTools" -Option Compare Database -Option Explicit - -Public Function CheckApplicationStartUpMethod() - If CurrentDb.Name Like "*.accda" Then - MsgBox "The add-in must be installed into the Access add-in directory using the add-in manager. Afterwards it has to be started via the menu entry '" & APPLICATION_NAME & "'.", _ - vbExclamation, APPLICATION_NAME & ": Incorrect start" - - Application.Quit - End If -End Function diff --git a/source/tables/L10n_Dict.xml b/source/tables/L10n_Dict.xml index 310c8dd..d67bbad 100644 --- a/source/tables/L10n_Dict.xml +++ b/source/tables/L10n_Dict.xml @@ -390,17 +390,7 @@ Marked entries can be removed from the list with {Del} key. EN - ACLib Import Wizard: Incorrect start - ACLib Import Wizard: Incorrect start - - - DE - The add-in must be installed into the Access add-in directory using the add-in manager. Afterwards it has to be started via the menu entry 'ACLib Import Wizard'. - DE:The add-in must be installed into the Access add-in directory using the add-in manager. Afterwards it has to be started via the menu entry 'ACLib Import Wizard'. - - - DE - ACLib Import Wizard: Incorrect start - DE:ACLib Import Wizard: Incorrect start + incl. &examples + incl. &examples From 20606fd1cf22f0531b60edf088aaf65aaec77a12 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Josef=20P=C3=B6tzl?= Date: Tue, 17 Jun 2025 14:21:43 +0200 Subject: [PATCH 2/3] fix comment --- source/modules/SqlTools.cls | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/source/modules/SqlTools.cls b/source/modules/SqlTools.cls index a069c0c..67aa5d7 100644 --- a/source/modules/SqlTools.cls +++ b/source/modules/SqlTools.cls @@ -891,9 +891,9 @@ Friend Function GetRelationalOperatorString(ByRef RelationalOperator As SqlRelat op = RelationalOperator Xor SQL_Not - If op = SqlRelationalOperators.SQL_Equal Then ' => "=" zu "<>" .. null ber�cksichtigen? + If op = SqlRelationalOperators.SQL_Equal Then ' => "=" zu "<>" .. check for Null required? RelationalOperator = SQL_LessThan + SQL_GreaterThan - ElseIf op = SQL_GreaterThan + SQL_LessThan Then ' => "<>" zu "=" .. null ber�cksichtigen? + ElseIf op = SQL_GreaterThan + SQL_LessThan Then ' => "<>" zu "=" .. check for Null required? RelationalOperator = SQL_Equal Else RelationalOperator = RelationalOperator Xor SQL_Not From c0ecdaa34ce9d63b6f46c1229e442ae78e83a1cf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Josef=20P=C3=B6tzl?= Date: Tue, 17 Jun 2025 15:11:06 +0200 Subject: [PATCH 3/3] Check installed --- source/forms/InstallAddInForm.cls | 21 +++++++++++++++++++++ source/modules/AddInInstaller.cls | 31 ++++++++++++++++--------------- 2 files changed, 37 insertions(+), 15 deletions(-) diff --git a/source/forms/InstallAddInForm.cls b/source/forms/InstallAddInForm.cls index 11ac661..6949f1f 100644 --- a/source/forms/InstallAddInForm.cls +++ b/source/forms/InstallAddInForm.cls @@ -41,6 +41,27 @@ Private Sub Form_Load() End With LoadDataFromConfiguration True + CheckInstalled + +End Sub + +Private Sub CheckInstalled() + + Dim TargetAddInPath As String + + With Configuration + If .AddInRegFilePath Like "|ACCDIR\*" Then + With New AddInInstaller + TargetAddInPath = .GetAddInLocation + End With + TargetAddInPath = TargetAddInPath & .FileName + If CurrentDb.Name = TargetAddInPath Then + Me.cbCompileAddIn.Visible = False + Me.cmdInstallAddIn.Visible = False + Me.Caption = "Installed Add-In" + End If + End If + End With End Sub diff --git a/source/modules/AddInInstaller.cls b/source/modules/AddInInstaller.cls index 3a40bc5..3297dde 100644 --- a/source/modules/AddInInstaller.cls +++ b/source/modules/AddInInstaller.cls @@ -65,43 +65,44 @@ Public Function InstallAddIn(ByVal AddInConfigData As AddInConfiguration, _ End Function -Public Property Get AddInName() As String +Private Property Get AddInName() As String AddInName = m_ConfigData.AddInRegPathName End Property -Public Property Get AddInFileName() As String +Private Property Get AddInFileName() As String AddInFileName = m_ConfigData.FileName End Property -Public Property Get MsgBoxTitle() As String +Private Property Get MsgBoxTitle() As String MsgBoxTitle = "Install " & AddInName End Property -Function GetSourceFileFullName() +Private Function GetSourceFileFullName() GetSourceFileFullName = CurrentDb.Name End Function -Function GetDestFileFullName() +Private Function GetDestFileFullName() GetDestFileFullName = GetAddInLocation & AddInFileName End Function -Function GetAddInLocation() +Friend Function GetAddInLocation() GetAddInLocation = GetAppDataLocation & "Microsoft\AddIns\" End Function -Function GetAppDataLocation() +Private Function GetAppDataLocation() GetAppDataLocation = Environ("APPDATA") & "\" End Function -Function DeleteAddInFiles() +Private Function DeleteAddInFiles() Dim DestFile As String + DestFile = GetDestFileFullName() DeleteFile DestFile End Function -Function DeleteFile(File2Delete) +Private Function DeleteFile(File2Delete) If FileTools.FileExists(File2Delete) Then Kill File2Delete End If @@ -127,7 +128,7 @@ On Error Resume Next End Function -Function CreateAccde(ByVal SourceFilePath As String, ByVal DestFilePath As String) As Boolean +Friend Function CreateAccde(ByVal SourceFilePath As String, ByVal DestFilePath As String) As Boolean Dim FileToCompile As String Dim AccessApp As Access.Application @@ -152,7 +153,7 @@ End Function '################################################## ' Register Menu Add-In -Function RegisterAddIn(AddInFile) +Private Function RegisterAddIn(AddInFile) Dim AddInDb As DAO.Database Dim rst As DAO.Recordset @@ -179,7 +180,7 @@ Function RegisterAddIn(AddInFile) End Function -Function RegisterMenuAddInItem(wsh, ByVal SubKey, ByVal ItemValName, ByVal RegType, ByVal ItemValue) +Private Function RegisterMenuAddInItem(wsh, ByVal SubKey, ByVal ItemValName, ByVal RegType, ByVal ItemValue) Dim RegName RegName = GetRegistryPath(SubKey) With wsh @@ -190,7 +191,7 @@ Function RegisterMenuAddInItem(wsh, ByVal SubKey, ByVal ItemValName, ByVal RegTy End With End Function -Function GetRegTypeString(ByVal RegType) +Private Function GetRegTypeString(ByVal RegType) Select Case RegType Case 1 GetRegTypeString = "REG_SZ" @@ -203,10 +204,10 @@ Function GetRegTypeString(ByVal RegType) End Select End Function -Function GetRegistryPath(SubKey) +Private Function GetRegistryPath(SubKey) GetRegistryPath = Replace(SubKey, "HKEY_CURRENT_ACCESS_PROFILE", HkeyCurrentAccessProfileRegistryPath()) End Function -Function HkeyCurrentAccessProfileRegistryPath() +Private Function HkeyCurrentAccessProfileRegistryPath() HkeyCurrentAccessProfileRegistryPath = "HKCU\SOFTWARE\Microsoft\Office\" & Access.Application.Version & "\Access" End Function