IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Runtime Discussion :

Les galères des Runtimes incompatibles [AC-2016]


Sujet :

Runtime

  1. #1
    Nouveau membre du Club

    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Mars 2014
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2014
    Messages : 17
    Points : 37
    Points
    37
    Billets dans le blog
    1
    Par défaut Les galères des Runtimes incompatibles
    Bonjours a tous,
    je ne résiste pas de plaisir de vous faire partager cette grosse galère des incompatibilités Microsoft.
    Je n'aborderai pas ici le fait que Microsoft, lors d'une installation, ne reconnait même pas ses propres produits.

    Si Vous avez développé un super programme avec access 2016 et que vous voulez le diffuser sur internet.
    Nuits blanches et avis de tempête à l'horizon.

    Le seule solution que j'ai trouvé pour passer au travers des mailles des incompatibilités des Runtime's Access
    a été de passer par l'installateur "Inno Setup".
    Du coup, j'ai du me remettre a quelques notions de Pascal-Delphi: je ne croyais pas que ce langage était encore utilisé.

    Donc, avant de se lancer dans la crétion d'une application sous MS ACCESS il faut y regarder à deux fois, et même un sacré paquet de fois.

    Question a se poser :

    Quelle version d'office est susceptible de posséder mon client final ?
    Office 2016 32 bits ?
    Office 2016 64 bits ?
    Office 2013 32 bits ?
    Office 2013 64 bits ?
    Ou antérieur (Office 2007 ou 2010 ?)

    Si vous avez développé avec 2016 ou 2013, et que le client final possède une version office antérieure
    Le RUNTIME ACCESS correspondant a votre version de développement doit être obligatoirement installé chez le client.

    Allons y gaiement :

    SI le client possède une version d'office :

    Hypothèse ou le client possède une version access 2016
    Pas besoin du runtime access.
    Ne faire attention qu'a la version avec laquelle vous avez créer votre ".Accde"
    -> Grosse incompatibilité d'humeur entre les version 32 et 64 bits
    Hypothèse ou le client possède une version access 2013
    Pas besoin du runtime access.
    Un ".accde" crée avec access 2016 ne fonctionne pas sur un ordinateur qui possède access 2013
    (que ce soit une version office 32 ou 64 bits).
    J'ai rencontré un problème de DLL qui existe dans Access 2016, et pas dans la version 2013.
    Vous n'avez plus qu'a intaller une version Office 2013 sur votre ordinateur de test, et créer votre ".accde" sur ce PC
    Hypothèse ou le client possède une version access anterieure a 2013
    RUNTIME ACCESS 32 bits OBLIGATOIRE.
    Vous pouvez installer le runtime 32 bits correspondant a la version avec laquelle vous avez développé.
    NE PAS OUBLIER DE FAIRE L'ASSOCIATION ADEQUATE ENTRE LE RUNTIME ET VOTRE ".ACCDE" DANS LA PROCEDURE D'INTALLATION.
    Sinon, ca ne fonctionne pas.
    Le client ne possede pas version d'office :
    No problems, vous installez le runtime que vous voulez.
    SAUF : Si le client final installe un pack office aprés l'intallation de votre runtime, son pack office ne s'installera que si
    il supprime le Runtime Acces que vous avez livré précédemment.
    Et vous retombez dans la galére du paragraphe précédent.

    Mon conseil....
    30 ans d'informatiques derrière moi...Je suis maintenant trop vieux pour apprendre un autre langage de programmation.
    Mon seul espoir et de trouver une moulinette ACCESS vers .Net dont les versions semblent compatibles entre elles.
    ou que Microsoft fasse un effort de compatibilité des versions MS ACCESS entre elles
    j'ai eu tord de croire, il y à 20 ans, que développer en VBA Access avait un avenir.

    Je pense que tous ses problèmes de compatibilités vont définitivement ruiner MSaccess... et moi par la même occasion, à mon grand regret.
    Quittez donc MS ACCESS si vous voulez diffuser vos logiciels .
    Access est t'il un vrai SGBD Professionnel... Définitivement non.,
    je ne connais aucun autre frontal de sgbd aussi incompatible avec lui même que les différentes versions de MSaccess

    Je vous libre ci dessous les sources de mon intallateur sous innoSetup qui fonctionne pas trop mal
    (qui lui est compatible avec tous les systèmes windows)

    A NOTER,
    - 1) J'ai du installer un addon à inno setup pour pouvoir télécharger les fichiers les bons fichiers en fonction de l'environnement logiciel du client final
    (#include <idp.iss>)
    -2) Les terminaisons ".accdr" ne sont pas conseillées.

    Code inno-setup : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    214
    215
    216
    217
    218
    219
    220
    221
    222
    223
    224
    225
    226
    227
    228
    229
    230
    231
    232
    233
    234
    235
    236
    237
    238
    239
    240
    241
    242
    243
    244
    245
    246
    247
    248
    249
    250
    251
    252
    253
    254
    255
    256
    257
    258
    259
    260
    261
    262
    263
    264
    265
    266
    267
    268
    269
    270
    271
    272
    273
    274
    275
    276
    277
    278
    279
    280
    281
    282
    283
    284
    285
    286
    287
    288
    289
    290
    291
    292
    293
    294
    295
    296
    297
    298
    299
    300
    301
    302
    303
    304
    305
    306
    307
    308
    309
    310
    311
    312
    313
    314
    315
    316
    317
    318
    319
    320
    321
    322
    323
    324
    325
    326
    327
    328
    329
    330
    331
    332
    333
    334
    335
    336
    337
    338
    339
    340
    341
    342
    343
    344
    345
    346
    347
    348
    349
    350
    351
    352
    353
    354
    355
    356
    357
    358
    359
    360
    361
    362
    363
    364
    365
    366
    367
    368
    369
    370
    371
    372
    373
    374
    375
    376
    377
    378
    379
    380
    381
    382
    383
    384
    385
    386
    387
    388
    389
    390
    391
    392
    393
    394
    395
    396
    397
    398
    399
     
    ; Script generated by the Inno Setup Script Wizard.
    ; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES!
     
    #include <idp.iss>
     
    #define MyAppName "Datavet"
    #define MyAppVersion "6.1"
    #define MyAppPublisher "WeSoft"
    #define MyAppURL "http://www.logiciel-veterinaire.com"
    #define MyAppExeName "Datavet.accde"
     
     
    [Setup]
    ; NOTE: The value of AppId uniquely identifies this application.
    ; Do not use the same AppId value in installers for other applications.
    ; (To generate a new GUID, click Tools | Generate GUID inside the IDE.)
    AppId={{D983AECC-DA75-45FE-B946-4C434BC5233C}
    AppName={#MyAppName}
    AppVersion={#MyAppVersion}
    ;AppVerName={#MyAppName} {#MyAppVersion}
    AppPublisher={#MyAppPublisher}
    AppPublisherURL={#MyAppURL}
    AppSupportURL={#MyAppURL}
    AppUpdatesURL={#MyAppURL}
    ArchitecturesInstallIn64BitMode=x64
    DefaultDirName=c:\{#MyAppName}
    DisableProgramGroupPage=yes
    LicenseFile=C:\DatavetPkg\Databases\Licence.txt
    InfoBeforeFile=C:\DatavetPkg\Databases\First.txt
    InfoAfterFile=C:\DatavetPkg\Databases\last.txt
    OutputDir=C:\DatavetPkg
    OutputBaseFilename=setupdatavet
    SetupIconFile=C:\DatavetPkg\ws.ico
    Compression=lzma
    SolidCompression=true
    WizardImageFile=C:\DatavetPkg\logows.bmp
    WizardSmallImageFile=C:\DatavetPkg\logows_s.bmp
    ExtraDiskSpaceRequired=300
    PrivilegesRequired=none
    DisableDirPage=true
    ChangesAssociations=yes
     
    [Languages]
    Name: english; MessagesFile: compiler:Default.isl
    Name: french; MessagesFile: compiler:Languages\French.isl
    Name: spanish; MessagesFile: compiler:Languages\Spanish.isl
     
     
    [Tasks]
    Name: desktopicon; Description: {cm:CreateDesktopIcon}; GroupDescription: {cm:AdditionalIcons}; Flags: unchecked
     
    [Files]
    ;Source: ExpandConstant('{tmp}') + '\Datavet.accde'; DestDir: {app}; Flags: ignoreversion
    Source: C:\Datavetpkg\Databases\First.txt; DestDir: {app}; Flags: ignoreversion
    Source: C:\Datavetpkg\ws.ico; DestDir: {app}; Flags: ignoreversion
    Source: C:\DatavetPkg\Databases\AA.accdb; DestDir: {app}; Flags: ignoreversion
    Source: C:\DatavetPkg\Databases\Dv_Be.accdb; DestDir: {app}; Flags: ignoreversion
    Source: C:\DatavetPkg\Databases\Dv_Ca.accdb; DestDir: {app}; Flags: ignoreversion
    Source: C:\DatavetPkg\Databases\Dv_Pr.accdb; DestDir: {app}; Flags: ignoreversion
    Source: C:\DatavetPkg\Databases\HC.accdb; DestDir: {app}; Flags: ignoreversion
    Source: C:\DatavetPkg\Databases\Io.accdb; DestDir: {app}; Flags: ignoreversion
    Source: C:\DatavetPkg\Databases\Lang.accdb; DestDir: {app}; Flags: ignoreversion
    Source: C:\DatavetPkg\Databases\Lg.accdb; DestDir: {app}; Flags: ignoreversion
    Source: C:\DatavetPkg\Databases\Dv_Ag.accdb; DestDir: {app}; Flags: ignoreversion
    ;Source: ExpandConstant('{tmp}\Database_Engine.exe'; DestDir: {app}; Check : IfFileExiste
     
    ; NOTE: Don't use "Flags: ignoreversion" on any shared system files
     
    [Icons]
    ;Name: {commonprograms}\{#MyAppName}; Filename: {app}\{#MyAppExeName};IconFilename: "{app}\Datavet.ico"
    ;Name: {commondesktop}\{#MyAppName}; Filename: {app}\{#MyAppExeName}; Tasks: desktopicon ;IconFilename: "{app}\Datavet.ico"
    ;Name: {group}\My App; Filename: {app}\myapp.exe
    Name: {group}\{cm:UninstallProgram,XUL Explorer}; Filename: {uninstallexe}
    Name: {userdesktop}\{#MyAppName}; Filename: {app}\{#MyAppExeName}; Tasks: desktopicon; IconFilename: {app}\ws.ico
     
    [Registry]
    ; Création de la clé primaire
    ; Inscription des valeurs de clés secondaires
    ; evite les message de securite de windows
     
    Root: HKCU; Subkey: Software\Microsoft\Office\16.0\Access\Security\Trusted Locations\Location20; ValueType: dword; ValueName: AllowSubFolders; ValueData: 0
    Root: HKCU; Subkey: Software\Microsoft\Office\16.0\Access\Security\Trusted Locations\Location20; ValueType: string; ValueName: Date; ValueData: 01/10/2017 23:51
    Root: HKCU; Subkey: Software\Microsoft\Office\16.0\Access\Security\Trusted Locations\Location20; ValueType: string; ValueName: Description; ValueData: 'datavet  defaut location'
    Root: HKCU; Subkey: Software\Microsoft\Office\16.0\Access\Security\Trusted Locations\Location20; ValueType: string; ValueName: Path; ValueData: {app}
     
    Root: HKCU; Subkey: {app}; ValueType: dword; ValueName: AllowSubFolders; ValueData: 0; Permissions: users-modify
     
    Root: HKCU; Subkey: Software\Microsoft\Office\15.0\Access\Security\Trusted Locations\Location20; ValueType: dword; ValueName: AllowSubFolders; ValueData: 0
    Root: HKCU; Subkey: Software\Microsoft\Office\15.0\Access\Security\Trusted Locations\Location20; ValueType: string; ValueName: Date; ValueData: 01/10/2017 23:51
    Root: HKCU; Subkey: Software\Microsoft\Office\15.0\Access\Security\Trusted Locations\Location20; ValueType: string; ValueName: Description; ValueData: 'datavet  defaut location'
    Root: HKCU; Subkey: Software\Microsoft\Office\15.0\Access\Security\Trusted Locations\Location20; ValueType: string; ValueName: Path; ValueData: {app}
    ; Associations
    Root: HKCR; SubKey: .accde; ValueType: string; ValueData: Access Runtime; Flags: uninsdeletekey
    Root: HKCR; SubKey: .accdr; ValueType: string; ValueData: Access Runtime; Flags: uninsdeletekey
    Root: HKCR; SubKey: Access Runtime; ValueType: string; ValueData: Runtime Datavet; Flags: uninsdeletekey
    Root: HKCR; SubKey: Access Runtime\Shell\Open\Command; ValueType: string; ValueData: """{app}\Datavet.accdr"" ""%1"""; Flags: uninsdeletevalue
    Root: HKCR; SubKey: Access Runtime\Shell\Open\Command; ValueType: string; ValueData: """{app}\Datavet.accde"" ""%1"""; Flags: uninsdeletevalue
     
    [Run]
    ;Installation runtime 2016
    Filename: {tmp}\Database_Engine.exe; Parameters: """/quiet"""; Flags: skipifdoesntexist
    ;execute le accdr a la fin de l install
     
    Filename: {app}\datavet.accde; Description: ""; Flags: shellexec postinstall
     
    [Code*]
     
    var
      MyPath: string;
      MyString: string;
      YaAccess : boolean;
      ResultFileExist : integer;
      Ok : boolean;
      NoMore : boolean;
      MyPathEngine : string;
      MyPathPrg : string;
      MyPathAppli : string;
     
    function InstallRuntime(): Boolean;
    Begin
        YaAccess := false
     
        MyPath := ExpandConstant('{pf32}')+'\Microsoft Office\root\Office16\MSACCESS.EXE';
        YaAccess := FileExists(MyPath);
     
        if YaAccess = false then
        begin
            MyPath := ExpandConstant('{pf32}')+'\Microsoft Office\Office16\MSACCESS.EXE';
            YaAccess := FileExists(MyPath);
        end;
     
        if YaAccess = false then
        begin
            MyPath := ExpandConstant('{pf32}')+'\Microsoft Office\root\Office16\MSACCESS.EXE';
            YaAccess := FileExists(MyPath);
        end;
     
        if YaAccess = false then
        begin
            MyPath := 'C:\Program Files (x86)\Microsoft Office\Office16\MSACCESS.EXE';
            YaAccess := FileExists(MyPath);
        end;
     
        if YaAccess = false then
        begin
            MyPath := ExpandConstant('{pf32}')+'\Microsoft Office\Office15\MSACCESS.EXE';
            YaAccess := FileExists(MyPath);
        end;
     
        if YaAccess = false then
        begin
            MyPath := ExpandConstant('{pf32}')+'\Microsoft Office\root\Office15\MSACCESS.EXE';
            YaAccess := FileExists(MyPath);
        end;
     
        if IsWin64 then
        begin
     
            if YaAccess = false then
            begin
                MyPath := ExpandConstant('{pf64}')+'\Microsoft Office\root\Office16\MSACCESS.EXE';
                YaAccess := FileExists(MyPath);
            end;
     
            if YaAccess = false then
            begin
                MyPath := ExpandConstant('{pf64}')+'\Microsoft Office\Office16\MSACCESS.EXE';
                YaAccess := FileExists(MyPath);
            end;
     
            if YaAccess = false then
            begin
                MyPath := ExpandConstant('{pf64}')+'\Microsoft Office\Office15\MSACCESS.EXE';
                YaAccess := FileExists(MyPath);
            end;
        end; 
     
        if YaAccess = false then
        begin
            Result := true;
        end else begin
            Result := false;
        end
    end;
     
    function YaC2R() : boolean;
    Begin
        ok := false;
     
        if RegKeyExists(HKEY_LOCAL_MACHINE,'SOFTWARE\WOW6432Node\Microsoft\Office\16.0\Common\InstallRoot\Virtual') = true then
        Begin
           ok := true;
        end;
     
        if ok = false then
        begin
            if RegKeyExists(HKEY_LOCAL_MACHINE,'SOFTWARE\WOW6432Node\Microsoft\Office\15.0\Common\InstallRoot\Virtual') = true then
            begin
                ok := true;
            end;
        end;
     
        if ok = false then
        begin
            MyPath := ExpandConstant('{pf32}')+'\Microsoft Office\root\Office16\MSACCESS.EXE';
            ok := FileExists(MyPath);
        end;
     
        if ok = false then
        begin
            MyPath := ExpandConstant('{pf32}')+'\Microsoft Office\root\Office15\MSACCESS.EXE';
            ok := FileExists(MyPath);
        end;
     
        if IsWin64 then
        begin
     
            if ok = false then
            begin
                MyPath := ExpandConstant('{pf64}')+'\Microsoft Office\root\Office16\MSACCESS.EXE';
                ok := FileExists(MyPath);
            end;
     
            if ok = false then
            begin
                MyPath := ExpandConstant('{pf64}')+'\Microsoft Office\root\Office15\MSACCESS.EXE';
                ok := FileExists(MyPath);
            end;
        end;
     
        Result := ok;
    end;
     
    function RuntimeReady() : boolean;
    Begin
     
        MyPath := ExpandConstant('{tmp}') + '\Database_Engine.exe';
        result := FileExists(MyPath);
    end;
     
    procedure InitializeWizard();
    begin
         MyPathEngine := ExpandConstant('{tmp}') + '\Database_Engine.exe';
         MyPathPrg := ExpandConstant('{tmp}') + '\Datavet.accde';
         MyPathAppli := 'C:\Datavet\Datavet.accde'
     
         if DirExists('C:\Datavet') = false then
         begin
                ok := CreateDir('C:\Datavet')
         end;
     
         if InstallRuntime = true then
         begin
                NoMore := false
     
                if YaC2R = true then
                begin
                    if RegQueryStringValue(HKEY_LOCAL_MACHINE, 'SOFTWARE\Microsoft\Office\ClickToRun\Configuration','Platform', mystring) then
                    begin
                        if mystring='x86' then
                        begin
                            idpAddFile('http://www.logiciel-veterinaire.com/_iserv/dlfiles/dl.php?ddl=Db_Engine_2013_32_fr.exe',ExpandConstant(MyPathEngine));
                            idpAddFile('http://www.logiciel-veterinaire.com/_iserv/dlfiles/dl.php?ddl=Datavet2016-32.accde',ExpandConstant(MyPathPrg));
                            NoMore := true
                        end;
     
                      if mystring = 'x64' then
                      begin
                            idpAddFile('http://www.logiciel-veterinaire.com/_iserv/dlfiles/dl.php?ddl=Db_Engine_2013_64_fr.exe',ExpandConstant(MyPathEngine));
                            idpAddFile('http://www.logiciel-veterinaire.com/_iserv/dlfiles/dl.php?ddl=Datavet2013-64.accde',ExpandConstant(MyPathPrg));
                            NoMore := true
                        end;
                      end;
     
                end else 
                begin
                    if RegQueryStringValue(HKEY_LOCAL_MACHINE, 'SOFTWARE\WOW6432Node\Microsoft\Office\15.0\Outlook','Bitness', mystring) then
                    begin
     
                        if mystring='x64' then
                        begin
                            idpAddFile('http://www.logiciel-veterinaire.com/_iserv/dlfiles/dl.php?ddl=Db_Engine_2013_64_fr.exe',ExpandConstant(MyPathEngine));
                            idpAddFile('http://www.logiciel-veterinaire.com/_iserv/dlfiles/dl.php?ddl=Datavet2013-64.accde',ExpandConstant(MyPathPrg));
                            NoMore := true
                        end;
     
                        if mystring='x86' then
                        begin
                            idpAddFile('http://www.logiciel-veterinaire.com/_iserv/dlfiles/dl.php?ddl=Db_Engine_2013_32_fr.exe',ExpandConstant(MyPathEngine));
                            idpAddFile('http://www.logiciel-veterinaire.com/_iserv/dlfiles/dl.php?ddl=Datavet2016-32.accde',ExpandConstant(MyPathAppli));
                            NoMore := true
                        end;
     
                    end;
                end;
     
                if NoMore=false then
                begin
                     idpAddFile('http://www.logiciel-veterinaire.com/_iserv/dlfiles/dl.php?ddl=Db_Engine_2016_32_fr.exe',ExpandConstant(MyPathEngine));
                     idpAddFile('http://www.logiciel-veterinaire.com/_iserv/dlfiles/dl.php?ddl=Datavet2016-32.accde',ExpandConstant(MyPathPrg));
                end;
     
         end else 
         begin
     
                if YaC2R = true then
                begin
                    if RegQueryStringValue(HKEY_LOCAL_MACHINE, 'SOFTWARE\Microsoft\Office\ClickToRun\Configuration','Platform', mystring) then
                    begin
                        if mystring = 'x86' then
                        begin
                            idpAddFile('http://www.logiciel-veterinaire.com/_iserv/dlfiles/dl.php?ddl=Datavet2016-32.accde',ExpandConstant(MyPathPrg));
                            NoMore := true
                        end;
     
                        if mystring = 'x64' then
                        begin
                            idpAddFile('http://www.logiciel-veterinaire.com/_iserv/dlfiles/dl.php?ddl=Datavet2013-64.accde',ExpandConstant(MyPathPrg));
                            NoMore := true
                        end;
                    end;
     
                end else 
                begin
                    if RegQueryStringValue(HKEY_LOCAL_MACHINE, 'SOFTWARE\WOW6432Node\Microsoft\Office\15.0\Outlook','Bitness', mystring) then
                    begin
     
                        if mystring='x64' then
                        begin
                            idpAddFile('http://www.logiciel-veterinaire.com/_iserv/dlfiles/dl.php?ddl=Datavet2013-64.accde',ExpandConstant(MyPathPrg));
                            NoMore := true
                        end;
     
                        if mystring='x86' then
                        begin
                            idpAddFile('http://www.logiciel-veterinaire.com/_iserv/dlfiles/dl.php?ddl=Datavet2013-32.accde',ExpandConstant(MyPathAppli));
                            NoMore := true
                        end;
     
                    end;
                end;
     
                if NoMore=false then
                begin
                     idpAddFile('http://www.logiciel-veterinaire.com/_iserv/dlfiles/dl.php?ddl=Datavet2016-32.accde',ExpandConstant(MyPathPrg));
                end;
         end;
         idpDownloadAfter(wpReady);
     end;
     
     
    procedure CurStepChanged(CurStep: TSetupStep);
    begin
         MyPathPrg := ExpandConstant('{tmp}') + '\Datavet.accde';
         MyPathAppli := 'C:\Datavet\Datavet.accde'
          if CurStep = ssPostInstall then 
          begin
              FileCopy(MyPathPrg,MyPathAppli, false)
          end;
    end;
     
     
    procedure ExitProcess(exitCode:integer);
      external 'ExitProcess@kernel32.dll stdcall';
     
    function MyConst32(Param: String): String;
    begin
      Result := ExpandConstant('{pf32}');
    end;
     
    function MyConst64(Param: String): String;
    begin
      Result := ExpandConstant('{pf64}');
    end;
     
    function StopNow(): Boolean;
    Begin
     
        Ok := False;
        if MsgBox('L''execution s''est t''elle bien terminé ? ' #13 ' - SI oui : l''installation va continuer normalement. ' #13 ' - Si non : vous avez eu une message d''incompatibilité, ' #13 '                  Veuillez télécharger la Version 64 bits sur ' #13 '                  http://www.logiciel-veterinaire.com ' , mbConfirmation, MB_YESNO) = IDYES then;
        begin
            Ok := true;
            ExitProcess(0);
        end;
     
        Result := Ok;
    end;
     
    [CustomMessages]
    ; Français
    ;fr.TaskIconGroup=Icônes :
    ;fr.TaskDesktopIcon=Créer une icône sur le &bureau
    ;fr.TaskQuickLaunchIcon=Créer une icône de &démarrage rapide
     
    ;English
    ;en.TaskIconGroup=Icons :
    ;en.TaskDesktopIcon=Create a desktop icon
    ;en.TaskQuickLaunchIcon=Create a quicklaunch icon

    Attention, la section [Code*] n'a pas d’astérisque (conflit avec [CODE])

  2. #2
    Expert confirmé

    Homme Profil pro
    consultant développeur
    Inscrit en
    Mai 2005
    Messages
    2 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : consultant développeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 2 878
    Points : 4 754
    Points
    4 754
    Par défaut
    salut Sacapuces ! (on se croirait dans Astérix)

    J'ai autant d'années que toi d'informatique mais heureusement pas autant de soucis !
    Pour être bref, en ce moment je développe en Access 2010 , 32 bits exclusivement.
    Je déploie chez des clients en Office 2010, 2013 ou 2016 (32 bits bien sûr sinon j’arrête de jouer).
    Dans tous les cas,si Access est non présent sur le poste, je fais installer le Runtime ACC 2013 (j'ai déduit des forums que le Runtime 2016 était buggé sinon plus sensible).
    Et puis voilà tout.
    Mes clients qui ont le runtime mettent mon programme dans un dossier sur leur PC et tout cela fonctionne sans besoin d'install compliquée. Je vais faire au départ l'install du backoffice sur le serveur et l'install initiale sur les pc clients. Mais je pourrai tout aussi le faire à distance (via Teamviewer... etc)

    Bien sûr il y a quelques hic mais si on tient compte de la compatibilité ascendante et si on prends connaissance du contexte du client, il y a moyen d'opérer. Sinon comme toi le futur d'Access et ce que Microsoft veut en faire, je ne sais pas.

    Donc tout n'est pas perdu !
    CDLT
    "Always look at the bright side of life." Monty Python.

  3. #3
    Rédacteur/Modérateur
    Avatar de argyronet
    Homme Profil pro
    Panseur de bobos en solutions ETL
    Inscrit en
    Mai 2004
    Messages
    5 123
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Panseur de bobos en solutions ETL
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 5 123
    Points : 12 169
    Points
    12 169
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    Pour ma part, Access est avec moi depuis sa naissance soit la version 1.0 en 1992.
    Bon, oui, ça fait un bail.
    Côté compatibilité, j'acquiesce le fait qu'il peut y avoir des problèmes, mais quand on distribue un programme sur le Net, sauf erreur de ma part, il y est bien spécifié que ce soit pour 32 ou 64 bits et il appartient à tout un chacun de choisir la version adaptée.
    Déjà, je connais peu de personne qui ont la chance d'avoir toutes les versions d'Access sur leur poste, qui plus est dans les deux technos 32/64.

    Depuis 2013, mon activité quotidienne consiste entre autres à maintenir et faire évoluer une application mal fichue, développée avec Access 2000, rebidulée sous Access 2003.
    A ce jour, cette application déployée au niveau national tourne sur Access 2003, 2010, 2013 et 2016 sans problème.
    Si la version d'Access est absente, tout comme "micniv", je fais en sorte de donner les directives pour que la version du Runtime de la version d'Office en place soit installée et c'est tout ; et ça marche.

    Je pense que votre problème vient surtout de comprendre que vouloir universaliser une application toute plateforme, toute technologie confondue est loin d'être simple.
    Access n'est peut-être pas aussi souple et puissant que 4D ou équivalent, mais ça reste un produit formidable pour le grand public autant que pour les experts où tout un chacun peut réaliser avec une certaine aisance une petite application ou un gros projet bien costaud.

    Chacun doit savoir où se trouvent ses limites et de là, peut naître une montée de colère lorsqu'un message inattendu survient alors que ça marche sur votre poste et c'est non reproductible la plupart du temps… Mais le plus souvent, c'est le développeur qui est responsable même s'il ne l'entend pas de cette oreille. Ce n'est pas à l'éditeur de s'adapter à votre application, mais plutôt à votre application de s'adapter aux différents contextes d'infrastructures existantes…

    Il est certain que la gestion des programmes et des versions des produits Microsoft reste un peu délicate à gérer, mais il faut aussi ne pas faire n'importe quoi en matière d'installation et de désinstallation...
    Ce que vous exposez est un cas exceptionnel.
    Personnellement, je tire mon chapeau, car m'apercevoir que des programmes 16 bits développés sous Windows 3.1 tournent sous Windows 7 64 bits (certes avec quelques adaptations, selon le cas), que des fichiers Excel 3.0 avec des macros peuvent encore être fonctionnels sur un Excel 2016, 27 ans après leur création, etc…

    Pour terminer…
    Inno setup est une solution intéressante et c'est sympa d'avoir publié votre fichier iss.
    Mais ça ne changera pas le problème.
    Vous n'allez quand même pas distribuer votre application avec 10 versions du Runtime de 300 Mo chacun en moyenne (2 pour chaque techno et pour chaque version à partir de 2007) sous prétexte que vous êtes susceptible de distribuer cette application dans tel ou tel cas de figure. Humm ?
    Il faudra bien créer un package adapté donc, le problème restera identique...

    Argy
    Ce qui donne son sens à la communication, c´est la réponse que l´on obtient. Si vous n´obtenez pas la réponse voulue, communiquez différemment.

    Ils comptent sur vous...
    Web Site@Mail
    Tutoriels : Déployez vos applications Access 2010 à 2019 */* Réalisez un Assistant de présaisie...
    MDB Viewer : Visionneuse Access v4.0
    *** Je recherche des profils (2 ans min.) Java EE, Fullstack, Front, .Net, Mobile... pour CDI ***

  4. #4
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 331
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 331
    Points : 23 786
    Points
    23 786
    Par défaut
    Bonjour juste mon "2 cents" sur la question.

    D'abord, merci sacapuces pour cette analyse détaillée des problèmes rencontrés et pour la solution apportées.

    Ensuite, oui Access est parfois frustrant et a des limites qui me font grincer des dents (à quand un VRAI éditeur de SQL avec mise en forme et coloration syntaxique, un zoom dans la fenêtre des relations, un possibilité de développer en .Net qui est vraiment plus cool que VBA).
    Mais je ne connais aucune plateforme ou environnement qui fonctionne avec toutes ses versions de manières identiques. Même HTML a de nombreuses versions et variations parfois incompatibles entre elles.
    Quand j'ai un environnement hétérogène je développe toujours pour la plus vielle version car Access est assez rétro-compatible si on n'a pas fait de fantaisies (appel d'Api, appel de fonctionnalités abandonnées dans les versions suivantes).

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  5. #5
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 648
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 648
    Points : 14 626
    Points
    14 626
    Par défaut
    bonsoir,
    à sacapuces ou à un modérateur : il faudrait poster le code source de l'installeur entre les balises de code car certains caractères provoquent des effets de bord : les 2 caractères :D donnent ce smiley ==>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    [Languages]
    Name: english; MessagesFile: compiler:Default.isl
    Name: french; MessagesFile: compiler:Languages\French.isl
    Name: spanish; MessagesFile: compiler:Languages\Spanish.isl
    Merci
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
    ah non ? donc devant l'écran c'est la connectique ?

  6. #6
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 331
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 331
    Points : 23 786
    Points
    23 786
    Par défaut
    Bonjour.

    J'ai essayé mais le code entre en conflit avec les balises.
    Il y a une instruction [code] quelque part qui fait que la présentation n'est pas correcte.

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  7. #7
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 648
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 648
    Points : 14 626
    Points
    14 626
    Par défaut
    Ok, merci pour l'info.
    Donc pour ceux qui veulent utiliser le code il suffit de remplacer la section [Languages] par celle que j'ai posté précédemment.
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
    ah non ? donc devant l'écran c'est la connectique ?

  8. #8
    Rédacteur/Modérateur
    Avatar de argyronet
    Homme Profil pro
    Panseur de bobos en solutions ETL
    Inscrit en
    Mai 2004
    Messages
    5 123
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Panseur de bobos en solutions ETL
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 5 123
    Points : 12 169
    Points
    12 169
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    J'ai apporté la modification...
    En trichant un peu.

    Argy
    Ce qui donne son sens à la communication, c´est la réponse que l´on obtient. Si vous n´obtenez pas la réponse voulue, communiquez différemment.

    Ils comptent sur vous...
    Web Site@Mail
    Tutoriels : Déployez vos applications Access 2010 à 2019 */* Réalisez un Assistant de présaisie...
    MDB Viewer : Visionneuse Access v4.0
    *** Je recherche des profils (2 ans min.) Java EE, Fullstack, Front, .Net, Mobile... pour CDI ***

  9. #9
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 648
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 648
    Points : 14 626
    Points
    14 626
    Par défaut
    bonjour argyronet,

    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
    ah non ? donc devant l'écran c'est la connectique ?

  10. #10
    Nouveau membre du Club

    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Mars 2014
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2014
    Messages : 17
    Points : 37
    Points
    37
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par argyronet Voir le message
    Bonjour,

    Pour ma part, Access est avec moi depuis sa naissance soit la version 1.0 en 1992.
    Bon, oui, ça fait un bail.
    Côté compatibilité, j'acquiesce le fait qu'il peut y avoir des problèmes, mais quand on distribue un programme sur le Net, sauf erreur de ma part, il y est bien spécifié que ce soit pour 32 ou 64 bits et il appartient à tout un chacun de choisir la version adaptée.
    Déjà, je connais peu de personne qui ont la chance d'avoir toutes les versions d'Access sur leur poste, qui plus est dans les deux technos 32/64.

    Depuis 2013, mon activité quotidienne consiste entre autres à maintenir et faire évoluer une application mal fichue, développée avec Access 2000, rebidulée sous Access 2003.
    A ce jour, cette application déployée au niveau national tourne sur Access 2003, 2010, 2013 et 2016 sans problème.
    Si la version d'Access est absente, tout comme "micniv", je fais en sorte de donner les directives pour que la version du Runtime de la version d'Office en place soit installée et c'est tout ; et ça marche.

    Je pense que votre problème vient surtout de comprendre que vouloir universaliser une application toute plateforme, toute technologie confondue est loin d'être simple.
    Access n'est peut-être pas aussi souple et puissant que 4D ou équivalent, mais ça reste un produit formidable pour le grand public autant que pour les experts où tout un chacun peut réaliser avec une certaine aisance une petite application ou un gros projet bien costaud.

    Chacun doit savoir où se trouvent ses limites et de là, peut naître une montée de colère lorsqu'un message inattendu survient alors que ça marche sur votre poste et c'est non reproductible la plupart du temps… Mais le plus souvent, c'est le développeur qui est responsable même s'il ne l'entend pas de cette oreille. Ce n'est pas à l'éditeur de s'adapter à votre application, mais plutôt à votre application de s'adapter aux différents contextes d'infrastructures existantes…

    Il est certain que la gestion des programmes et des versions des produits Microsoft reste un peu délicate à gérer, mais il faut aussi ne pas faire n'importe quoi en matière d'installation et de désinstallation...
    Ce que vous exposez est un cas exceptionnel.
    Personnellement, je tire mon chapeau, car m'apercevoir que des programmes 16 bits développés sous Windows 3.1 tournent sous Windows 7 64 bits (certes avec quelques adaptations, selon le cas), que des fichiers Excel 3.0 avec des macros peuvent encore être fonctionnels sur un Excel 2016, 27 ans après leur création, etc…

    Pour terminer…
    Inno setup est une solution intéressante et c'est sympa d'avoir publié votre fichier iss.
    Mais ça ne changera pas le problème.
    Vous n'allez quand même pas distribuer votre application avec 10 versions du Runtime de 300 Mo chacun en moyenne (2 pour chaque techno et pour chaque version à partir de 2007) sous prétexte que vous êtes susceptible de distribuer cette application dans tel ou tel cas de figure. Humm ?
    Il faudra bien créer un package adapté donc, le problème restera identique...

    Argy
    Bonjour et Merci de votre réponse Argy
    Ayant une petite structure informatique.. Oui, je l'avoue, j'utilise les pc en cours de réparation de mes clients pour faire des tests d'installation.
    D'autre part, les licences offices sont fonctionnelles pendant un mois... j'en ai outrageusement profité.

    Donc, Suite a plein d'essais (dans des conditions de test de licence et de matériels inavouables) je vous communique le retour d'information de mes constatations, en espérant être utile a toute la communauté.

    Le runtime Acces 2013 ou 2016 cohabite parfaitement avec une version office 2010 ou antérieure déjà installée .
    J'ai suivis les conseils de micniv, j'ai désinstallé mon office 2016, et retourné vers office 2013 ... Pas plus en arriére cer
    L'apparence de Access2010 est vraiment trop moche

    Sachant que si installation du Runtime, (client sans office, ou inférieur a 2013) la terminaison du programme doit être de type "accdr"
    Sinon (client avec MSACCESS de type office 2013 ou 2016) extension de type "accde"

    J'ai essayé WINDEV.. Je n'ai pas accroché, mais cela fonctionne partout sans problème de version.
    Le problème, et l'avantage de Msacces, est que le runtime est trop dépendant des suites "Office". Tout les problèmes viennent de là.
    Par contre si quelqu'un connait parmis vous le moyen de faire une association de fichier avec InnoSetup, Je suis preneur
    ex : ouvrir un "accdr" avec le runtime, et un "accde" avec MsAccess.
    Merci a tous pour vos réponses.

  11. #11
    Rédacteur/Modérateur
    Avatar de argyronet
    Homme Profil pro
    Panseur de bobos en solutions ETL
    Inscrit en
    Mai 2004
    Messages
    5 123
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Panseur de bobos en solutions ETL
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 5 123
    Points : 12 169
    Points
    12 169
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    L'extension accdr n'est pas une finalité : elle doit rester un choix pour des tests de comportement en mode runtime uniquement.
    Cela n'apporte pas de solution resultant de problèmes tels que ceux que vous remontez.
    Mais ayant une confiance minime sur ce mode, je préfère tester mon appli avec un "vrai" Runtime qu'avec un fichier renommé car on ignore ce qui a été entreprit par Microsoft sur ce plan là ; et de donner une confiance aveugle sur le fait que renommer en accdr est à l'identique d'un fonctionnement en mode réel avec le Runtime n'est pas à valider tant que nous n'aurons pas ces informations.

    Pour résumer, accde/mde peuvent être employés si et seulement s'il n'y a pas de besoin de créer dynamiquement des objets (formulaires, états..) au sein de l'application.
    Il est également à considérer qu'un accdb/accdr est accessible même avec un bypass sur la touche Shift vs autoexec.

    Il faut noter au passage - et c'est très important - que ce type de fichier s'exécute plus rapidement qu'un accdb (ou accdr s'il est simplement renommé).
    Cela peut avoir de graves conséquences sur le fonctionement si le code est mal "rédigé" ou mal maîtrisé.
    Nous avons eu quelques fois des personnes ici qui ont remonté que leur accdb tourne et que la version accde de leur application plante.
    J'en ai eu fait personnellement les frais et c'est pour cela que je permets d'exposer cette analyse que j'ai fini par découvrir il y a quelques années.

    Argy
    Ce qui donne son sens à la communication, c´est la réponse que l´on obtient. Si vous n´obtenez pas la réponse voulue, communiquez différemment.

    Ils comptent sur vous...
    Web Site@Mail
    Tutoriels : Déployez vos applications Access 2010 à 2019 */* Réalisez un Assistant de présaisie...
    MDB Viewer : Visionneuse Access v4.0
    *** Je recherche des profils (2 ans min.) Java EE, Fullstack, Front, .Net, Mobile... pour CDI ***

  12. #12
    Membre à l'essai
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2013
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2013
    Messages : 10
    Points : 15
    Points
    15
    Par défaut
    Bonjour,
    je développe une application sur Access 2010. Cette application est ensuite convertie en .ACCDE pour fonctionner sur d'autres postes n'utilisant que le runtime 2010.
    J'ai un plantage en mode runtime dans un module qui semble provenir de l'appel à la ligne de déclaration :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Public Declare Function ShowWindow Lib "User32" (ByVal hWnd As Long, ByVal nCmdShow As Long) As Long
    L'appel est réalisé par une procédure dans ce même module qui ne contient rien d'autre que la déclaration des constantes. (Ce code provient du site) J'ai tenté de forcé le typage des constantes en entier long, de faire un appel via un call au cas où, mais rien n'y fait. Ca fonctionne avec Access et pas avec le runtime.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Public Sub MasquerAccess(Choix As Boolean)
    'cache ou active la fenetre access
    If Choix = True Then
        Call ShowWindow(CLng(Application.hWndAccessApp), CLng(SW_HIDE))
    Else
        Call ShowWindow(CLng(Application.hWndAccessApp), CLng(SW_SHOWNORMAL))
    End If
    End Sub
    J'ai testé :
    - sur mon poste qui dispose de Access pro 2010 : en forçant le runtime 2010 en utilisant l'extension ACCDR : ça plante. En utilisant l'extension ACCDE, ça fonctionne.
    - sur un poste ne contenant que le runtime 2010 : ça plante avec les extension ACCDE et ACCDR

    Du coup, je me demande si on peut utiliser des libraires avec le runtime ! Dépitant. Une idée pour me décoincer de mon ignorance ?

    PS : désolé pour le format du post, j'ai pas du tout l'habitude.

    PS : j'ai oublié de préciser que l'appel de la procédure est réalisé depuis une fenêtre dans la première ligne de code de l'évènement On_Load du formulaire, si ça a une importance.

  13. #13
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 260
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 260
    Points : 19 423
    Points
    19 423
    Billets dans le blog
    63
    Par défaut
    Bonjour,

    La version du runtime est en 32 ou 64 bits ?

    Cdlt,
    Vous trouverez dans la FAQ, les sources ou les tutoriels, de l'information accessible au plus grand nombre, plein de bonnes choses à consulter sans modération

    Des tutoriels pour apprendre à créer des formulaires de planning dans vos applications Access :
    Gestion sur un planning des présences et des absences des employés
    Gestion des rendez-vous sur un calendrier mensuel


    Importer un fichier JSON dans une base de données Access :
    Import Fichier JSON

  14. #14
    Membre à l'essai
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2013
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2013
    Messages : 10
    Points : 15
    Points
    15
    Par défaut
    Je pense qu'elle est en 32 bit, c'est la version 2010. Il y a un moyen de le vérifier ?
    Mon poste est en 32 bits et ma version Access également.:

    Précision :
    Lorsque je regarde les propriétés de Runtime.exe, il propose d'éxecuter en mode compatibilité pour des windows allant de 95 à window7. La case est décochée par défaut, c'est ainsi que je l'installe. La valeur par défaut grisée et le XP service pack . Peut-être est-ce la source du problème ?

  15. #15
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 260
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 260
    Points : 19 423
    Points
    19 423
    Billets dans le blog
    63
    Par défaut
    Bonjour,

    Citation Envoyé par Scory Voir le message
    Je pense qu'elle est en 32 bit, c'est la version 2010. Il y a un moyen de le vérifier ?
    Mon poste est en 32 bits et ma version Access également.:
    Si vous ouvrez le gestionnaire des tâches windows pendant l'exécution du runtime, normalement, dans la liste des applications ouvertes vous devez avoir quelque chose comme :

    RunTime Access (32 bits)

    Cdlt,
    Vous trouverez dans la FAQ, les sources ou les tutoriels, de l'information accessible au plus grand nombre, plein de bonnes choses à consulter sans modération

    Des tutoriels pour apprendre à créer des formulaires de planning dans vos applications Access :
    Gestion sur un planning des présences et des absences des employés
    Gestion des rendez-vous sur un calendrier mensuel


    Importer un fichier JSON dans une base de données Access :
    Import Fichier JSON

  16. #16
    Membre à l'essai
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2013
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2013
    Messages : 10
    Points : 15
    Points
    15
    Par défaut
    Le gestionnaire des taches de Windows indique MSACCESS.EXE*32 lorsque j'execute le fichier ACCDR (celui qui plante). Aucune indication au Runtime. Sauf dans l'apparence de Access qui est très minimaliste
    Il indique la même chose avec l'extension ACCDE, sans plantage, mais dans ce cas ACCESS s'affiche comme en mode normal sauf qu'il ne permet pas d'accès à la visualisation du code.
    Décidément le titre de ce fil de discussion est bien choisi !

  17. #17
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 260
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 260
    Points : 19 423
    Points
    19 423
    Billets dans le blog
    63
    Par défaut
    Bonjour,

    Sans gestion d'erreur le fichier Access se ferme directement avec le runtime :

    Il faudrait mettre une gestion d'erreur au niveau du code incriminé, je crois que c'est celui -ci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    Public Sub MasquerAccess(Choix As Boolean)
    'cache ou active la fenetre access
    On Error GoTo errorHandler
     
            If Choix = True Then
                Call ShowWindow(CLng(Application.hWndAccessApp), CLng(SW_HIDE))
            Else
                Call ShowWindow(CLng(Application.hWndAccessApp), CLng(SW_SHOWNORMAL))
            End If
     
        'Permet de sortir de la procédure et évite la gestion d'erreur (errorHandler), si la macro
        's'est déroulée sans encombre.
        Exit Sub
     
    errorHandler:
        'indique le numéro et la description de l'erreur survenue
        MsgBox Err.Number & vbLf & Err.Description
     
    End Sub
    Et voir le message d'erreur..
    Vous trouverez dans la FAQ, les sources ou les tutoriels, de l'information accessible au plus grand nombre, plein de bonnes choses à consulter sans modération

    Des tutoriels pour apprendre à créer des formulaires de planning dans vos applications Access :
    Gestion sur un planning des présences et des absences des employés
    Gestion des rendez-vous sur un calendrier mensuel


    Importer un fichier JSON dans une base de données Access :
    Import Fichier JSON

  18. #18
    Membre à l'essai
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2013
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2013
    Messages : 10
    Points : 15
    Points
    15
    Par défaut
    J'obtiens l'erreur N°2544 avec un texte assez peu explicite :
    "Microsoft Access ne trouve pas auquel vous faites référence dans l'argument Nom objet"

    J'en ai profité également pour tester ce code où le résultat de l'appel à la fonction API est placé dans un entier long, vu que ça déclration est ainsi faite. Pas mieux.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    Public Sub MasquerAccess(Choix As Boolean)
    'Cache ou active la fenetre access
    On Error GoTo Erreur
    Dim Result As Long
    If Choix = True Then
        Result = ShowWindow(CLng(Application.hWndAccessApp), CLng(SW_HIDE))
    Else
        Result = ShowWindow(CLng(Application.hWndAccessApp), CLng(SW_SHOWNORMAL))
        DoCmd.SelectObject acForm, "", True
        ShowWindow Application.hWndAccessApp, SW_SHOWMAXIMIZED
    End If
    Exit Sub
    Erreur:
    MsgBox Err.Number & vbCrLf & Err.Description
    End Sub

  19. #19
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 260
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 260
    Points : 19 423
    Points
    19 423
    Billets dans le blog
    63
    Par défaut
    Dans la commande :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DoCmd.SelectObject acForm, "", True
    Vous n'indiquer pas le nom de l'objet ("").

    Pour la balise de code c'est le bouton #

    Cdlt,
    Vous trouverez dans la FAQ, les sources ou les tutoriels, de l'information accessible au plus grand nombre, plein de bonnes choses à consulter sans modération

    Des tutoriels pour apprendre à créer des formulaires de planning dans vos applications Access :
    Gestion sur un planning des présences et des absences des employés
    Gestion des rendez-vous sur un calendrier mensuel


    Importer un fichier JSON dans une base de données Access :
    Import Fichier JSON

  20. #20
    Membre à l'essai
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2013
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2013
    Messages : 10
    Points : 15
    Points
    15
    Par défaut
    Me voilà scotché ! Et ravi.
    Après quelques modifs pour tester un comportement qui s'approche de ce qui devra être réalisé, le problème est levé. Je dois avouer que je suis confus mais je n'utilise jamais les API, alors il est si facile d'être faible parfois... et d'oublier de vérifier ce qu'on a sous les yeux !
    Milles merci.

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Réponses: 5
    Dernier message: 08/01/2004, 15h05
  2. LES TECHNIQUES DES SGBDR / MySQL rapide ???
    Par SQLpro dans le forum Langage SQL
    Réponses: 1
    Dernier message: 12/09/2003, 11h16
  3. specifier les chemins des .class
    Par draken dans le forum Eclipse Java
    Réponses: 2
    Dernier message: 29/07/2003, 09h35
  4. Récuperer les icons des JDialog
    Par Pro_Fete dans le forum Agents de placement/Fenêtres
    Réponses: 2
    Dernier message: 17/04/2003, 13h00
  5. Réponses: 2
    Dernier message: 22/07/2002, 18h02

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo