[VB.NET] Database wel onder acces niet onder .NET openen

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

  • voodoo202
  • Registratie: Januari 2002
  • Laatst online: 04-08-2025
Ik heb een database van een pakket Snelstart.

Deze database is beveiligt tegen bewerken, waar ik verder geen probleem mee heb. Maar nu wil ik graag de gegevens wel kunnen gebruiken in een ander programma waar ik mee bezig ben. Het gaat om de persoonsgegevens.

Als ik de database in Acces open dan kan ik alles bekijken, ik kan query's aanmaken exporteren enz. Maar als ik in VB.Net de database probeer te koppelen dan krijg ik een foutmelding dat ik geen rechten heb om te lezen. In de database verbinding heb ik opgegeven dat ik alleen read acces wil. Maar zo zodra ik een tabel probeer te openen gaat het mis.

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
        Try
            dBLijst = New ADODB.Connection
            dBLijst.CursorLocation = ADODB.CursorLocationEnum.adUseNone
            dBLijst.CursorLocation = ADODB.ConnectModeEnum.adModeRead
            dBLijst.Open("PROVIDER=Microsoft.Jet.OLEdB.4.0;Data Source= " + Database + " ;")
            RSLijst = New ADODB.Recordset

        Catch es As System.Exception
            MsgBox(es.Message)
        End Try


        RSLijst.Open("SELECT * FROM tblRelatieQuery", dBLijst, ADODB.CursorTypeEnum.adOpenDynamic, ADODB.LockTypeEnum.adLockReadOnly)
        Do While Not RSLijst.EOF
            Console.WriteLine(RSLijst.Fields("fldNaam").Value)
            RSLijst.MoveNext()
        Loop
        RSLijst.Close()
        dBLijst.Close()

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 17:29

gorgi_19

Kruimeltjes zijn weer op :9

Met welke user wil je hem openen? En hoe gebruik je hem; webforms, winforms? En heb je een exacte foutmelding? heb je deze ook al door Google gehaald; en wat leverde dit op?

[ Voor 39% gewijzigd door gorgi_19 op 20-04-2005 22:10 ]

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • whoami
  • Registratie: December 2000
  • Laatst online: 18:35
Je connection-string is niet goed.
afaik mag je geen 'provider' opgeven in .NET

Zie ook www.connectionstrings.com

Daarnaast vraag ik me ook af waarom je -als je toch in vb.net werkt- geen gebruik maakt van ADO.NET.

[ Voor 34% gewijzigd door whoami op 20-04-2005 22:11 ]

https://fgheysels.github.io/


  • voodoo202
  • Registratie: Januari 2002
  • Laatst online: 04-08-2025
Ik maak gebruik van geen wachtwoord en de standaard gebruiker (admin)
in Winforms

In ado.net heb ik het ook geprobeerd dan krijg ik dezelfde foutmelding

code:
1
2
3
An unhandled exception of type 'System.Runtime.InteropServices.COMException' occurred in Explorer.exe

Additional information: Kan de record(s) niet lezen. U hebt geen machtiging voor tblRelatie om de gegevens te lezen.

  • voodoo202
  • Registratie: Januari 2002
  • Laatst online: 04-08-2025
whoami schreef op woensdag 20 april 2005 @ 22:11:
Je connection-string is niet goed.
afaik mag je geen 'provider' opgeven in .NET

Zie ook www.connectionstrings.com

Daarnaast vraag ik me ook af waarom je -als je toch in vb.net werkt- geen gebruik maakt van ADO.NET.
Waarom staat dat dan wel op die pagina ?

code:
1
2
3
4
OLE DB, OleDbConnection (.NET) 
 Standard security:

"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=\somepath\mydb.mdb;User Id=admin;Password=;"

  • whoami
  • Registratie: December 2000
  • Laatst online: 18:35
Hmm, foutje.
't Is bij sql server dan dat je die provider niet mag opgeven.

Je hebt toevalig die DB niet ergens openstaan in design-mode ofzo , of de relaties ervan openstaan ?

https://fgheysels.github.io/


  • voodoo202
  • Registratie: Januari 2002
  • Laatst online: 04-08-2025
whoami schreef op woensdag 20 april 2005 @ 22:27:
Hmm, foutje.
't Is bij sql server dan dat je die provider niet mag opgeven.

Je hebt toevalig die DB niet ergens openstaan in design-mode ofzo , of de relaties ervan openstaan ?
Nee dat heb ik ook al gekeken, computer al opnieuw opgestart, dat database gekopieerd, en in Vmware geprobeerd. Het vreemde is dat acces het wel kan openen.

  • whoami
  • Registratie: December 2000
  • Laatst online: 18:35
mail ze eens.

https://fgheysels.github.io/


  • Lustucru
  • Registratie: Januari 2004
  • Niet online

Lustucru

26 03 2016

Hoe is die database dan beveiligd tegen bewerken? Zit er een MDW bestandje bij?

De oever waar we niet zijn noemen wij de overkant / Die wordt dan deze kant zodra we daar zijn aangeland


  • voodoo202
  • Registratie: Januari 2002
  • Laatst online: 04-08-2025
Niesje schreef op woensdag 20 april 2005 @ 23:53:
Hoe is die database dan beveiligd tegen bewerken? Zit er een MDW bestandje bij?
Hou hij beveiligt is weet ik niet precies. Maar ik heb in de installatie directorie van snelstart wel een MDW file gevonden. Maar aangezien ik meerdere voorbeelddatabase op het systeem heb staan, zou ik niet weten of die mdw er wel bij hoort. Maar zelfs met MDW bestand naast de database lukt het niet. En blijf ik de melding krijgen.

Ik heb ook al een programma geprobeerd wat zegt dat hij alle beveiliging eraf kan halen (demo) maar die zegt dat er niks op zit.

Downloaden database

[ Voor 7% gewijzigd door voodoo202 op 21-04-2005 19:24 . Reden: database link ]


  • Lustucru
  • Registratie: Januari 2004
  • Niet online

Lustucru

26 03 2016

Ik heb er naar gekeken en het is idd een halfbakken beveiliging op userniveau. Dus moet je het meegeleverde MDW bestandje gebruiken:
In vb code krijg je dan dit:
Visual Basic:
1
2
3
            dBLijst.Provider = "Microsoft.Jet.OLEdB.4.0;"
            dBLijst.Properties("Jet OLEDB:System database") =  mdwfile
            dBLijst.Open ("Data Source= " + Database + " ;")

De oever waar we niet zijn noemen wij de overkant / Die wordt dan deze kant zodra we daar zijn aangeland


  • voodoo202
  • Registratie: Januari 2002
  • Laatst online: 04-08-2025
Niesje schreef op donderdag 21 april 2005 @ 20:31:
Ik heb er naar gekeken en het is idd een halfbakken beveiliging op userniveau. Dus moet je het meegeleverde MDW bestandje gebruiken:
In vb code krijg je dan dit:
Visual Basic:
1
2
3
            dBLijst.Provider = "Microsoft.Jet.OLEdB.4.0;"
            dBLijst.Properties("Jet OLEDB:System database") =  mdwfile
            dBLijst.Open ("Data Source= " + Database + " ;")
Als wat moet je die mdwfile declareren ?

  • Lustucru
  • Registratie: Januari 2004
  • Niet online

Lustucru

26 03 2016

Als string, wat anders?
Staat een voorbeeld; en anders MSDN
RobIII schreef op maandag 18 april 2005 @ 15:01 in een ander topic:
Kom op zeg... beetje zelfwerkzaamheid kan geen kwaad hoor.... :|
En daar sluit ik me dan maar weer bij aan. ;)

De oever waar we niet zijn noemen wij de overkant / Die wordt dan deze kant zodra we daar zijn aangeland


  • voodoo202
  • Registratie: Januari 2002
  • Laatst online: 04-08-2025
Ja sorry, niet goed gekeken.

Het werkt inderdaad perfect. Het is dus een beveiliging van de database.
Toch vind ik het een beetje vreemd, dat ACCES dit mdw bestand wel zelf vind, terwijl die op een andere loctie staat. En .Net niet zelfs niet met ADO.NET

[ Voor 43% gewijzigd door voodoo202 op 21-04-2005 22:25 ]


  • Lustucru
  • Registratie: Januari 2004
  • Niet online

Lustucru

26 03 2016

Ook dat raadsel is op te lossen. Access gebruikt gewoon de standaard system.mdw, net als de jet.provider. De beveiliging is een beetje brak geimplementeerd in die database, en access gebruikt een iets andere manier om zijn tabellen te benaderen, waardoor ie met minder machtigingen toe kan in vergelijking met de jet.provider.

De oever waar we niet zijn noemen wij de overkant / Die wordt dan deze kant zodra we daar zijn aangeland

Pagina: 1