Avatar billede schoesler Nybegynder
02. februar 2003 - 22:30 Der er 18 kommentarer og
1 løsning

Valg af ny datafil?

Hej Eksperter
Min DB er delt i front-end og back-end. Nogen gange ville jeg gerne skifte til en anden back-end end den der er linket til min front-end. Findes der en kode som kan gøre det uden at jeg behøver at åbne min DB for brugeren.? Det skulle gerne være sådan at brugeren selv kan skifte, hvis nødvendigt.
Jan
Avatar billede sjap Praktikant
02. februar 2003 - 22:50 #1
Det kræver vist en større omgang kode. Jeg er ikke sikker, men på nedenstående side kan du næsten kopiere det hele.

http://www.mvps.org/access/tables/tbl0009.htm
Avatar billede schoesler Nybegynder
03. februar 2003 - 10:04 #2
Umiddelbart får jeg ikke koden til af virke. Er der andre foreslag?
Avatar billede sjap Praktikant
03. februar 2003 - 12:47 #3
Hvad går galt?
Avatar billede schoesler Nybegynder
03. februar 2003 - 14:17 #4
Får følgende fejl

ahtAddFilterItem(strFilter,

i funktionen som ser sådan ud

Function fGetMDBName(strIn As String) As String
'Calls GetOpenFileName dialog
Dim strFilter As String

    strFilter = ahtAddFilterItem(strFilter, _
                    "Access Database(*.mdb;*.mda;*.mde;*.mdw) ", _
                    "*.mdb; *.mda; *.mde; *.mdw")
    strFilter = ahtAddFilterItem(strFilter, _
                    "All Files (*.*)", _
                    "*.*")

    fGetMDBName = ahtCommonFileOpenSave(Filter:=strFilter, _
                                OpenFile:=True, _
                                DialogTitle:=strIn, _
                                flags:=ahtOFN_HIDEREADONLY)
End Function
Avatar billede schoesler Nybegynder
03. februar 2003 - 14:18 #5
compile error function or subfunction not defined
Avatar billede sjap Praktikant
03. februar 2003 - 14:46 #6
Det er noget kode, der mangler. Hmm - mystisk.
Avatar billede sjap Praktikant
03. februar 2003 - 14:48 #7
Det er alligevel ikke så mystisk øverst på den side jeg referede til tidligere er en henvisning ( http://www.mvps.org/access/api/api0001.htm ) til noget kode, der åbner en dialogboks til finde filen med.
Avatar billede hugopedersen Nybegynder
04. februar 2003 - 07:43 #8
Den kode indeholder så vidt jeg kan se en fare - man kan 'risikere' at komme til at bruge nogle tabeller fra forskellige datafiler.
Den mest korrekte måde at lave dette lille julenummer på er ved først at fjerne linket til alle tabeller og derefter lave et nyt link til en ny backend.

Hvis du lige kaster en mailadresse, skal jeg sende dig en fil med noget kode som burde virke ved at kalde funktionen fhpLink_CreateToDB
Avatar billede schoesler Nybegynder
04. februar 2003 - 07:58 #9
jan@schoesler.com
Avatar billede hugopedersen Nybegynder
04. februar 2003 - 08:03 #10
Jeg havde ikke lige set at det var dig Jan - filen er afsendt her fra.  Du kender adressen for yderligere spørgsmål :-)
Avatar billede sjap Praktikant
04. februar 2003 - 08:11 #11
hugopedersen

Det var vel sådan set også det der var hele ideen i spørgsmålet. Men du har selvfølgelig ret i at det gamle link skal fjernes først.
Avatar billede schoesler Nybegynder
04. februar 2003 - 08:17 #12
Hej Hugo
Får fejl i denne løkke. Det er ligesom om der mangler en funktion?


Hilsen JAN

For Each tdf In dbs.TableDefs                                'All tables
      If Left(tdf.name, 4) <> "MSys" Then
        If fhpLink_Create(strPath, tdf.name) = True Then          'Try to make link
          fhpLink_CreateToDB = True                              'Link made OK
        Else
Avatar billede hugopedersen Nybegynder
04. februar 2003 - 08:25 #13
Det er vist denne her -


Public Function fhpLink_Create(strSrcDb As String, strTable As String) As Boolean
' -----------------------------------------------------------------------------------
' Purpose      : Creates a link to strTable in the database strSrcDb
' Called from  :
' Returns      :
' Remarks      : Links to current DB
' -----------------------------------------------------------------------------------
On Error GoTo Error_fhpLink_Create
 
  DoCmd.TransferDatabase acLink, "Microsoft Access", strSrcDb, acTable, strTable, strTable
 
  fhpLink_Create = True                                  'All ended well
 
Exit_fhpLink_Create:
  Exit Function                                        'Stop here

Error_fhpLink_Create:
  If Err <> 3012 Then
    MsgBox Err.Number & ": " & Err.Description, vbOKOnly + vbCritical, "Error in function 'fhpLink_Create'"
  End If
  fhpLink_Create = False
  Resume Exit_fhpLink_Create

End Function
Avatar billede schoesler Nybegynder
04. februar 2003 - 08:39 #14
'hugo' fejlen forsvandt, men nu sker der ingen ting når jeg kalder funktionen
fhpLink_CreateToDB() ?? hmmmm.
Avatar billede hugopedersen Nybegynder
04. februar 2003 - 09:47 #15
Avatar billede hugopedersen Nybegynder
04. februar 2003 - 09:48 #16
UPS der kom et s for meget med :-)

http://www.alco.dk/user/hugo/files/db_link.zip
Avatar billede schoesler Nybegynder
04. februar 2003 - 10:09 #17
'hugo' det virker. Men hvad gjorde du? Umiddelbart ser vores module og macro ens ud. Er det svært at indsætte en progress bar imens den linker?
Tak for hjælpen. Opretter du et svar så jeg kan komme af med pointene.
JAN
Avatar billede hugopedersen Nybegynder
04. februar 2003 - 10:21 #18
Der manglede åbenbart en lille funktion som jeg havde overset.

Progressbar - så skal man lige til at tænke :-)
Jeg har en funktion der kan tælle antallet af tabeller i en ekstern datafil, så burde man kunne lave et eller andet i fhpLink_CreateToDB der tæller op det har du ret i. Det tror jeg jeg vil forsøge mig ud i når jeg skal være alene hjemme i aften mens lillemor er til banko :-)
Send lige en mail på min hjemmeadresse som du har, så husker jeg at opdatere filen i aften.
Avatar billede hugopedersen Nybegynder
04. februar 2003 - 16:34 #19
Så skulle der ligge en opdateret fil med et progressmeter på ovennævnte adresse.
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