16. marts 2003 - 17:38Der er
43 kommentarer og 2 løsninger
DoCmd.TransferDatabase... import fra sikret db ??
Hej.
I min ene database importerer jeg nogle tabeller fra en anden db(ms access2000). Dette fungerer som det skal, 100% ok..... men..... Nu har jeg fundet på at køre med 'sikkerhed på brugerniveau' i hoveddatabasen, altså den db jeg importerer fra. Jeg har forsøgt mig med:
Try setting the workgroup file as the default. This will mean that when you open the database you are importing to then you will need to enter user + password. Then see if you can use the "Access" syntax (NOT ODBC)
Jeg er ikke altid sikker på at kunne sætte workgroup-filen som default, idet hoveddb ligger på et netværk, og at min 'client'-db måske kommer til at køre som en access runtime, uden at access er installeret. Derfor vil jeg gerne støve en syntaks op, hvori jeg har brugernavn og password.
I dont quite understand WHY the "hoveddb" has to use a workgroup file but the client dB's need to import from it. cant you just put a database password on the "hoveddb"?
Min hoveddb anvendes med web-brugerflade, og min 'client' er en access baseret mini-udgave af hoveddb. Når man så har min client på en bærbar pc, som er offline, opdaterer nogle records, og når man kommer hjem på netværket igen, opdaterer man hoveddb.
OK, so you dont JUST use TransferDatabase ? why dont you just LINK the tables when you link for the first time you will be asked to enter the database password (if you use a dB passwords and NOT WRKGRP) an dthen Access remembers it next time you open the linked tables
det er lidt kompliceret. Jeg 'låser' nogle poster i hoveddb (min egen form for postlåsning), og henter så disse poster ud på clienten. Herefter ændrer/tilføjer/sletter jeg nogle poster, og når jeg skal returnere det hele til hoveddb, editerer jeg de respektive poster. Mit behov for at kopiere/importere tabeller er når jeg skal hente date over til clienten (altså fra starten). Her er der brug for en hel del ekstra tabeller, som aldrig ændres eksternt (f.eks kundetype, aftaletype m.m.). Hvis jeg linker er jeg bange for at der går 'ged' i det hele, da der kan være en del client-brugere, og tabellerne skal også være tilgængelige på clienten når denne er offline.
I have to ask again, so WHY are you using a workgroup file? This is what is giving you problems and if you use a dB password instead of a WRKGRP file it "may" help!
Jeg bruger en workgroup file fordi der er nogle få brugere som skal have rettighed til at åbne databasen i access, og læse i en bestemt tabel, og ellers skal der være lukket af for andre.
Når jeg kører sikkerhed på brugerniveau laver jeg 2 konti. Den ene er medlem af admin, og den bruges af web-brugerfladen. Den anden minimerer jeg rettighederne for, og giver til de få brugere som skal kunne læse direkte i access, uden at de kan ændre noget.
Jobless we are into areas I havent played around with so much so I am just guessing. Normally you wont be able to pass the user name and password to the master dB because you have to tell Access which workgroup file you are using and this can only be done by either having the workgroup file as the deafult OR starting Access with a shortcut which includes the workgroup file and the user+password. Its also possible in VB to set which workgroup file is to be used BEFORE opening Access, but this can not be done in Access BECAUSE Access is already running. Please try setting the workgroup file as the defauly JUST to see if it works. Then I will explain how to use the workgroup file for a specific Access dB.
ok, ny har jeg sat min workgroup file op som default....... Nu spørger access om user/pass, når jeg åbner .mdb filen direkte (som den skal)... What to do, next?
Lets just make sure what we have done! You have set your workgroup file as the default, then you open the client PC and run the code which imports from the server dB, and it works, is that correct?
ikke helt.... Jeg har sat workgroup filen som default. Når jeg kører min client kode, importerer den som om der ikke var sikkerhed på hoveddb, idet jeg ikke har ændret koden (der er ikke angivet user/pass, nogen steder i min kode):
OK then I dont think you can :o( I was hopeing that by starting the first dB with the workgroup file that Access would use the user/password when trying to import from the server dB. Now we know that it doesnt :o(
Your problem is that it is NOT the Access database which authorises you to use the dB but Access. In other words Access gets started with the user+pwd and then Access opens the dB using this information. When you double click on a dB or include it in a TransferDatabase string Access starts BEFORE it gets this information and then it is too late :o(
So just adding the user and pwd to the TransferDatabase string isnt going to work, or at least I dont think so.
So I think you are going to have to look at other ways to do this. One possibility is to use NT security on the folder where the dB is and let only some users read/write and others just read.
well if you can make a connection then make a recordset in Access and then loop through all records and then you can INSERT INTO ..... into your table(s)
Ja, det har jeg tængt på, men det er vigtigt at når jeg skal returnere posterne, kan jeg bruge de rigtige(originale) nøgler (autoinc), for at være sikker på at jeg opdaterer de rigtige poster.
jobless>I dont have any idea as to how your database is design but IF you are UPDATING a table in the master with data from the lient PC then it sup to ypu to make sure that the correct records are updated.
Ja, selvf. Jeg opdaterer hoved-record med den client-record som har samme autoinc (jeg sætter en boolean til true i clienten, hvis den pågældende record skal opdateres).
Jeg er ved at overveje om jeg kan sætte en DSN forbindelse op, og lave docmd.transferdatabase igennem den, da det vil være en masiv omskrivning af min kode, hvis jeg først skal til at oprette tabellerne dynamisk, og derefter importere data via sql. Burde jeg ikke kunne lave dette nummer med en DSN-forbindelse?
Set DBE = Nothing Set W = Nothing Set Db = Nothing
Det er lidt af en blanding mellem flere forskellige sources. Min fejl er, at jeg ikke kan komme til at køre en docmd.transferdatabase på mit object 'db'.
Kan dette fikses, da min ide er at få den sikrede database til at eksportere til den aktuelle database??
jobless>Are you doing this in Access or VB because IF you are in Access then I am 99% sure that you can NOT do what your saying. If you are in VB then you can.
Herved får jeg rigtigt importeret min tabel (faktisk eksporteret fra den sikrede db), men min kode når at køre videre inden handlingen er gennemført, og derved får jeg en fejl, idet jeg forsøger at bruge en importeret tabel, inden den er importeret.
Kan jeg med denne kode stoppe udførelsen, indtil jeg har fået min tabel rigtigt over?
according to the bible Jet Database Engine Programmers Guide Second Edition then you cant!
Jobless we are into areas which I havent played around with so much so it will mean that I would have to make a setup to simulate what your doing and I must admit it is taking a LONG TIME an din theend it may not be possible. Suggestion make a VB program and try it.
Ok, det vil være et godt alternativ, hvis det kan lade sig gøre fra VB6.
Jeg importerer en del tabeller via den kode som jeg forsøger at lave, så jeg vil gerne have nogle tips til hvordan jeg laver noget vb som jeg kan kalde med det tabel-navn jeg skal have importeret.
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.