Avatar billede zyber Nybegynder
13. februar 2003 - 14:33 Der er 7 kommentarer og
2 løsninger

API GetOpenFileName i Access95 på Windows2000

Hej

Jeg har en gl database som kører i Access95, og nu efter at vi har opdateret nogle af maskinerne til Windows2000 virker API kaldet til GetOpenFileName ikke længere. Det virkede helt fint i Windows98 som de gl. maskiner kørte med.

Hvad går der galt og hvordan dette løses ?????
Avatar billede zyber Nybegynder
13. februar 2003 - 14:35 #1
Det skal lige siges at database ikke kan konverteres til Access2000, som ellers var meget nærliggende. Der er en masse kode som ikke umiddelbart kan køre i Access2000.
Avatar billede mugs Novice
13. februar 2003 - 15:38 #2
Hvilken fejl får du?
Avatar billede zyber Nybegynder
13. februar 2003 - 16:02 #3
Dialogboksen vises ikke. Den bliver bare spruget over i koden. jeg har prøvet at lave en msgbox på hver side at kaldet og de bliver vist rigtigt.
Avatar billede hugopedersen Nybegynder
13. februar 2003 - 16:32 #4
Måske kan du få hjælp ved at kigge på den fil jeg henviser til i spørgsmål http://www.eksperten.dk/spm/313635
Avatar billede sjap Praktikant
13. februar 2003 - 18:55 #5
Nedenstående er snuppet fra http://support.microsoft.com/default.aspx?scid=kb;en-us;147781 som er meget lang. Du skal formodentlig ændre dit kald fra et 16-bit til et 32-bit som vist nedenfor.

16-bit:
Declare Function GetOpenFileName Lib "COMMDLG.DLL" _
        (OPENFILENAME As tagOPENFILENAME) As Integer
               
32-bit:
Type tagOPENFILENAME
            lStructSize As Long
            hwndOwner As Long
            hInstance As Long
            lpstrFilter As String
            lpstrCustomFilter As String
            nMaxCustFilter As Long
            nFilterIndex As Long
            lpstrFile As String
            nMaxFile As Long
            lpstrFileTitle As String
            nMaxFileTitle As Long
            lpstrInitialDir As String
            lpstrTitle As String
            flags As Long
            nFileOffset As Integer
            nFileExtension As Integer
            lpstrDefExt As String
            lCustData As Long
            lpfnHook As Long
            lpTemplateName As String
        End Type

        Declare Function apiGetOpenFileName Lib "comdlg32.dll" _
            Alias "GetOpenFileNameA" (OPENFILENAME as tagOPENFILENAME) _
            As Long
Avatar billede zyber Nybegynder
14. februar 2003 - 23:38 #6
Det kører allerede 32-bit kaldet.
Avatar billede sjap Praktikant
15. februar 2003 - 14:36 #7
Har du prøvet at "steppe" gennem koden, så du - om ikke andet - så kan se præcist hvor det går galt?
Avatar billede zyber Nybegynder
25. februar 2003 - 14:15 #8
Der sker ingen fejl når API bliver kaldt, der bliver bare ikke vist nogen dialog eller returneret noget.
Avatar billede sjap Praktikant
25. februar 2003 - 15:34 #9
zyber
Det er da pænt af dig at give point, men så vidt jeg kan forstå, har du ikke fået løst problemet. Skal det forstås sådan, at du har "steppet" dig gennem koden ude fejlmeldinger - og desværre også uden dialogboks?
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester