VB Access db met password openen??

Pagina: 1
Acties:
  • 397 views sinds 30-01-2008
  • Reageer

  • chicky
  • Registratie: Augustus 2001
  • Laatst online: 01-06-2025
hoi,

Ik ben een klein prog. aan het schrijven, waarmee ik een Access db moet openen. De db is met een password beveiligd.
(Ik weet het password). Als ik in VB de db wil openen krijg ik steeds een foutmelding

Code:
Dim strPad As String
Dim db As Connection
Dim adoPrimaryRS As Recordset

Set db = New Connection

strPad = GetSetting(App.Title, "Settings", "Pad", 0)

db.CursorLocation = adUseClient

db.Open "PROVIDER=Microsoft.Jet.OLEDB.3.51;Data Source=" & strPad & "\" & strBestand & ".mdb", "", "password"
enz.

Wat doe ik niet goed??

  • chicky
  • Registratie: Augustus 2001
  • Laatst online: 01-06-2025
Vergeten,

De foutmelding:

"Runtime error '-2147467259 (80004005)':
Kan de toepassing niet starten. Het gegevensbestand van de werkgroep ontbreekt of is exclusief geopend door een andere gebruiker.

  • Basszje
  • Registratie: Augustus 2000
  • Laatst online: 11-09 08:17

Basszje

Reisvaap!]

Of je heb je DB nog ergens op ontwerpen lock staan of werkgorep bestaat niet :?

Beware of listening to the imposter; you are undone if you once forget that the fruits of the earth belong to us all, and the earth itself to nobody.


Verwijderd

Edit: ik zie nu pas dat je geen gebruik maakt van ADO. Het hiernastaande stukje gaat alleen over ADO, maar dat maakt op zich niet zoveel uit...

Probeer eerst met behulp van je Dataview-window een connectiestring op te bouwen. Als die werkt, bouw je die na in code. Om de string dan netjes op te bouwen kun je het doen zoals ik doe:

Zet deze code in een module, dan kan je 'm elke keer weer hergebruiken...
code:
1
2
3
4
5
6
strConnect = "Provider=" & ADOProvider & ";"
strConnect = strConnect & "User ID=" & ADOUserID & ";"
strConnect = strConnect & "Data Source=" & strAccessPad & "\" & ADOSource & ";"
strConnect = strConnect & "Mode=Read|Write" & ";"
strConnect = strConnect & "Jet OLEDB:System Database=" & strAccessPad & "\" & ADOSystemdB & ";"
strConnect = strConnect & "Jet OLEDB:Database Password=" & ADOPassword & ";"

Waarbij je de variabelen ADOProvider, ADOUserId, strAccessPad, ADOSource, ADOSystemDB en ADOPassword lekker ergens anders kunt vullen.

  • chicky
  • Registratie: Augustus 2001
  • Laatst online: 01-06-2025
Nou, als ik (mijn) bovenstaande code gebruik zonder het laatste stukje [ , "", "password" ] en ik open een database zonder password, dan werkt het perfect.

Het probleem ontstaat als ik een password aan de db hang en dan probeer te openen.

VB zegt het volgende;
Open([ConnectionString As String],[UserID as String],[Password As String],[Option As Long=-1])

De ConnectionString heb ik en die werkt.
De UserID laat ik leeg (misschien niet goed, maar Access vraagt niet om een UserID dus??)
Het Password heb ik ook ingevuld
De option laat ik leeg.

Wat is dus niet goed??

  • Phenomenon
  • Registratie: December 2000
  • Laatst online: 01-04 13:18
Wat voor een wekgroep heb je eraan hangen dan? Probeer anders eens system.mdw er aan the hangen en dan met username admin en wachtwoord leeg.

  • Basszje
  • Registratie: Augustus 2000
  • Laatst online: 11-09 08:17

Basszje

Reisvaap!]

Probeers eens in je DSN ipv je password alleen deze tekst :

pwd=blablabla

Bij ODBC zou je DSN dan zoiets worden :

DSN="bli;pwd=blablabla"

Beware of listening to the imposter; you are undone if you once forget that the fruits of the earth belong to us all, and the earth itself to nobody.


  • chicky
  • Registratie: Augustus 2001
  • Laatst online: 01-06-2025
Op woensdag 13 maart 2002 14:07 schreef Basszje het volgende:
Probeers eens in je DSN ipv je password alleen deze tekst :

pwd=blablabla

Bij ODBC zou je DSN dan zoiets worden :

DSN="bli;pwd=blablabla"
Ik kan me vergissen, maar ik gebruik geen DSN met een datagrid.
Ik kan dan dus ook niet zo iets als DSN="bli;pwd=blablabla" invullen.

Als ik me nou wel vergis (best goed mogelijk hoor), waar staat die DSN dan en waar vul ik het dan in :?

  • Basszje
  • Registratie: Augustus 2000
  • Laatst online: 11-09 08:17

Basszje

Reisvaap!]

Dit bedoel ik dus :

db.Open "PROVIDER=Microsoft.Jet.OLEDB.3.51;Data Source=" & strPad & "\" & strBestand & ".mdb", "", "pwd=password"

Weet niet of het werkt hoor. Ik werk alleen met ODBC waar het dus wel werkt.

Beware of listening to the imposter; you are undone if you once forget that the fruits of the earth belong to us all, and the earth itself to nobody.


  • chicky
  • Registratie: Augustus 2001
  • Laatst online: 01-06-2025
Nee,

Het werkt niet en ik krijg dezelfde foutmelding die ik al eerder noemde :'(

Verwijderd

Als je de melding die je krijgt leest, zie je dat die best wel eens je antwoord zou kunnen bevatten.

Hij zegt dus dat:
1. iemand anders deze specifieke database exclusief geopend heeft OF
2. hij het bestand niet kan vinden waarin de userID's/passwords staan

1. als niemand de db exclusief geopend heeft kan het zijn dat een sessie niet goed afgesloten is. Open het bij je database behorende .ldb bestand met notepad en kijk wat daarin staat. Staat er nog iemand anders in, sluit dan je db en verwijder de ldb.
2. probeer je een database te openen die met een .mdw beveiligd is, dan moet je ook de user in je connectionstring opnemen. Natuurlijk moet het .mdw bestand wel aanwezig zijn, en bovendien ook het origineel zijn. Je kan natuurlijk niet zelf ff een mdw'tje klussen en daarop inloggen ;-)

  • chicky
  • Registratie: Augustus 2001
  • Laatst online: 01-06-2025
De database is op de meest eenvoudige manier beveiligd; met een password als je de database wilt openen. Er worden dan niet om een werkgroep gevraagd.
Om de db te kunnen beveiligen moet je 'em wel exclusief openen en dan beveiligen met een password.
Echter als ik de db open met VB, is de db niet meer geopend en dan mag het "exclusief openen" geen probleem meer zijn.

Nou ik weet het echt niet.

- er zijn geen werkgroepen.
- de database is niet geopend.
- als er nou wel een werkgroep is, waar moet ik dat dan in Access invullen en hoe maak ik de koppeling tussen system.wdm en vb?

  • Phenomenon
  • Registratie: December 2000
  • Laatst online: 01-04 13:18
Haal je password dan eens uit je database en probeer of het dan lukt.

En als er geen werkgroep is aangewezen aan de database dan is standaard system.mdw actief. De inlognaam hiervoor is Admin wachtwoord is dan niet nodig.

Probeer ook eens een systeem dsn aan te maken en daarmee te connecten.

Verwijderd

Kan je niet de gehele database met pw beveiligen?

  • Phenomenon
  • Registratie: December 2000
  • Laatst online: 01-04 13:18
Op donderdag 14 maart 2002 16:22 schreef ITsMatthijs het volgende:
Kan je niet de gehele database met pw beveiligen?
Dat kan wel, maar dat is niet echt de vraag dacht ik zo.

Verwijderd

Probeer eens als userID 0 ipv "" in te vullen, misschien werkt het. Of gewoon helemaal leeg laten.

Verwijderd

Als je alleen een BackEnd password hebt gebruikt moet je een workspace openen met het betreffende password, en dan met je workspace de database openen zonder het betreffende password.

  • Basszje
  • Registratie: Augustus 2000
  • Laatst online: 11-09 08:17

Basszje

Reisvaap!]

Op vrijdag 15 maart 2002 02:35 schreef IJskoud het volgende:
Als je alleen een BackEnd password hebt gebruikt moet je een workspace openen met het betreffende password, en dan met je workspace de database openen zonder het betreffende password.
:? Wtf ?

Beware of listening to the imposter; you are undone if you once forget that the fruits of the earth belong to us all, and the earth itself to nobody.


Verwijderd

Op vrijdag 15 maart 2002 10:44 schreef Basszje het volgende:
:? Wtf ?
Oh ja, VB, niet VBA |:( thnx 4the hint...
Pagina: 1