Ini bestand voor Access?

Status
Niet open voor verdere reacties.

reneemettrie

Terugkerende gebruiker
Lid geworden
1 aug 2006
Berichten
1.233
Vraagje van iemand die in Delphi programmeert en nu VBA in Access moet gebruiken.
Is het mogelijk een .ini bestand te maken waarin je info kan zetten die beschikbaar is voor Access bestanden?
 
Simpel antwoord: ja, dat is zelfs niet zo moeilijk. Je kunt dat ini bestand dan inlezen in je db bij starten (want daar zal het wel om gaan) en de parameters instellen. Veel slimmer natuurlijk om die data in een tabel te zetten, of eventueel in een aparte database waarbij je de tabel koppelt.
 
Bedankt!
Maar stel dat het om gegevens ivm paswoorden gaat, hoe kan je dan op de gemakkelijkste en toch veilige manier die tabel enkel zichtbaar maken voor wie daar het recht toe heeft?
 
Dat is nog makkelijker natuurlijk, in eerste instantie de tabel verbergen, en/of zorgen dat gebruikers geen toegang hebben tot tabellen. Sowieso hebben gebruikers daar niks te zoeken, dus dat is voor mij altijd al een standaardhandeling. Daarnaast heeft een wachtwoordveld een masker, zodat je niet zonder meer dat wachtwoord kunt zien/lezen.
 
Ja dat is natuurlijk mogelijk. Maar tenzij je Shift-open hebt geblokkeerd kan dat omzeild worden. Is het mogelijk één specifieke tabel te blokkeren?
Of werk je met een front end en een backend en zet je een paswoord op de backend?
 
Ik heb geen ervaring met het inlezen van tekstbestanden maar denk dat je die in hun geheel moet binnenhalen, en dat je daar niet zomaar iets kunt opzoeken?
Ik heb het nu benaderd via Excel. Een bestand (voor één of andere reden krijg ik het niet naar Google drive) met als paswoord "test" bevat de volgende gegevens:
Name Password Other Info
Alain A
Bernard B
Christine C
David D
Eric EE

In Access wordt de gebruikersnaam gekozen en een paswoord gevraagd. Dit wordt (via cmd_OK) gecontroleerd in de excel file.
Is het correct, dan wordt een tekstvak voor een nieuw paswoord en een knop om het paswoord te wijzigen actief (of eventueel zichtbaar)

Is dat een goede benadering?

https://drive.google.com/open?id=0B3VzY4oSx6lQaXNHal9NV0RKalE

Code:
Option Compare Database
Option Explicit

Dim Objexcel As Excel.Application
Dim ObjWB As Workbook
Dim ws As Worksheet
Dim r As Range
Dim MyFile As String, pw As String 'password for the Excel file
Dim pwAccess As String 'pasword for the Access file






Private Sub cmd_OK_Click()
MyFile = CurrentProject.Path & "\Passwords.xlsx"
pw = "test"
Set Objexcel = New Excel.Application

Set ObjWB = Objexcel.Workbooks.Open(FileName:=MyFile, Password:=pw, writerespassword:=pw)

Set ws = ObjWB.ActiveSheet
Set r = ws.Range("A1").CurrentRegion.Columns(1)
pwAccess = r.Find(cbo_UserName.Value).Offset(0, 1)

ObjWB.Close savechanges:=False

Objexcel.Quit
Set Objexcel = Nothing
Set ObjWB = Nothing

'MsgBox pwAccess
If txt_Password = pwAccess Then
    cmd_ChangePassword.Enabled = True
    txt_NewPassword.Enabled = True
    txt_NewPassword.SetFocus
Else
    MsgBox "Wrong Password"
End If

End Sub



Private Sub cmd_ChangePassword_Click()

MyFile = CurrentProject.Path & "\Passwords.xlsx"
pw = "test"
Set Objexcel = New Excel.Application

Set ObjWB = Objexcel.Workbooks.Open(FileName:=MyFile, Password:=pw, writerespassword:=pw)

Set ws = ObjWB.ActiveSheet

Set r = ws.Range("A1").CurrentRegion.Columns(1)
r.Find(cbo_UserName.Value).Offset(0, 1).Value = txt_NewPassword
 
    
ObjWB.Close savechanges:=True

Objexcel.Quit
Set Objexcel = Nothing
Set ObjWB = Nothing

MsgBox "done"
'DoCmd.Close
End Sub
 
Een tekstbestand wordt regel voor regel ingelezen. Afhankelijk van de inrichting ervan kun je best simpel daar een paar regels uithalen, maar enige structuur is dus wel wenselijk. Maar dat kan dus wel met INI files. De benadering met Excel is ook niet wezenlijk anders, maar wel een stuk trager natuurlijk omdat je ook nog eens Excel moet openen. Een ini bestand werkt vele malen sneller. Maar de optie met een backend met de userdata heeft mijn voorkeur. Eén tabel apart beveligen kan uiteraard niet, de backend voor wachtwoorden met één tabel doet echter precies wat jij wilt, en die backend is prima te beveiligen. Databases met de Shift toets openen? Dat kun je prima dichttimmeren met een startformuiler. En voor de rest: als men zijn gebruikers zó slecht vertrouwt, zou ik eerst wat aan het personeel doen (groot ontslag springt dan gelijk naar boven :) ).
 
Nooit met tekstbestanden in VBA gewerkt...
Ik heb zitten googlen en in de je handleidingen zitten zoeken maar eerlijk gezegd vind ik niet hoe je zo een tekstbestand moet inlezen en iets doen met de inhoud daarvan.

Iets van die aard?

Sub ReadTextfile()
Code:
Dim MyFile As String
MyFile = CurrentProject.Path & "\logfile.txt"
Open MyFile For Input As #1
Do While Not EOF(MyFile)
[B][I]Geef de inhoud van de lijn
code om de inhoud van de lijn te verwerken
[/I][/B]Loop
Close MyFile

Hoe schrijf je het commando om de inhoud van een lijn te verkrijgen?
En wat gebeurt er met die inhoud? Moet je daar op controleren en dan programmeren om er iets mee te doen?
End Sub
 
Volgens mij heb je in die andere draad al voldoende info gekregen over het benaderen en beschrijven van ini bestanden. Klopt die veronderstelling?
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan