Bekijk de onderstaande video om te zien hoe je onze site als een web app op je startscherm installeert.
Opmerking: Deze functie is mogelijk niet beschikbaar in sommige browsers.
Dat kan op verschillende manieren allen met hun eigen voor en nadelen.
Het simpelste is de AutoExec macro gebruiken die gelijk de database afsluit en in de startup parameters ervoor zorgen dat de shift-toets ingedrukt houden tijdens opstarten geen nut meer heeft.
Als de tabellen in die database zijn gekoppeld aan een database die de cracker zelf maakt dan sta je weer met een mond vol tanden. Dat kan dus beter.
Je kan de database een password geven. In de frontend moet je tijden het koppelen dat password gebruiken dus als je dat automatisch doet dan staat je password leesbaar in de code. Die code moet je dus ook onzichtbaar maken. Ook hier moet je zorgen dat de gebruiker niet op kan starten met de shift toets ingedrukt. Of in ieder geval dat dat geen zin heeft.
Nog beter is de built-in Access userlever security (ULS) Je maakt dan een nieuwe werkgroep aan en geeft de gebruikergroep rechten en wijst de gebruiker toe aan een groep.
Voor nog geen 100 euri zijn programma's te koop die ook dat weer kraken.
Misschien moet je eens kijken naar SQL Server?
HTH![]()
je moet je backend ook met een password beveiligen en niet alleen de frontend.
tijdens het koppelen wordt dan ook om dat password gevraagd. dat was de tweede optie.
Public Function ConnectFromSameDir() As String
Dim i As Long
Dim ii As Long
Dim dbs As Database
Dim curdir As String
Dim myTable As TableDef
Dim strDescription As String
Dim strLinkedDbName As String
Dim strLinkedFullDbName As String
On Error GoTo CFSD_Error
'Find directory of database that executes this function (current directory)
Set dbs = CurrentDb
curdir = Mid(CurrentDb.Name, 1, Len(CurrentDb.Name) - Len(Dir(CurrentDb.Name)))
'check if tables are connected
For i = 0 To dbs.TableDefs.Count - 1
Set myTable = dbs.TableDefs(i)
If myTable.Connect <> "" Then
'table is connected, find name connected Database by stripping directories from full path
strLinkedFullDbName = Mid(myTable.Connect, InStr(myTable.Connect, ";Database=") + 10)
ii = 0
While InStr(ii + 1, strLinkedFullDbName, "\") > 0
ii = InStr(ii + 1, strLinkedFullDbName, "\")
Wend
strLinkedDbName = Mid(strLinkedFullDbName, ii + 1)
If Dir(curdir & strLinkedDbName) <> strLinkedDbName Then
'database from which table is connected not in current directory
MsgBox "Database " & strLinkedDbName & " waaruit " & myTable.Name & " komt staat niet op de huidige directory, als de te linken database van naam veranderd is link dan met de hand opnieuw anders wordt wellicht de verkeerde link gebruikt"
Else
' is table connected to database in current directory
If strLinkedFullDbName <> curdir & strLinkedDbName Then
' connected to database in another directory or another replica in same directory so reconnect table
strDescription = "Database=" & curdir & strLinkedDbName
myTable.Connect = "MS Access;PWD=helpmij;" & strDescription
On Error Resume Next
myTable.RefreshLink
SetProperty myTable, "Description", strDescription
End If
End If
End If
Next
Exit_CFSD:
Exit Function
CFSD_Error:
MsgBox Err.Description, vbCritical
Resume Exit_CFSD
Resume
End Function
Je krijgt die foutmelding omdat het huidige password: geen, niet goed is voor de gekoppelde tabellen.
Je moet de tabellen opnieuw koppelen. Daarbij wordt wel een password gevraagd. Als je dat gedaan hebt dan is dat password bij de link opgeslagen.
Je kan het ook automatisch doen:Deze fucntie gaat ervan uit dat de BE op dezelfde directory staat als de FE.Code:Public Function ConnectFromSameDir() As String Dim i As Long Dim ii As Long Dim dbs As Database Dim curdir As String Dim myTable As TableDef Dim strDescription As String Dim strLinkedDbName As String Dim strLinkedFullDbName As String On Error GoTo CFSD_Error 'Find directory of database that executes this function (current directory) Set dbs = CurrentDb curdir = Mid(CurrentDb.Name, 1, Len(CurrentDb.Name) - Len(Dir(CurrentDb.Name))) 'check if tables are connected For i = 0 To dbs.TableDefs.Count - 1 Set myTable = dbs.TableDefs(i) If myTable.Connect <> "" Then 'table is connected, find name connected Database by stripping directories from full path strLinkedFullDbName = Mid(myTable.Connect, InStr(myTable.Connect, ";Database=") + 10) ii = 0 While InStr(ii + 1, strLinkedFullDbName, "\") > 0 ii = InStr(ii + 1, strLinkedFullDbName, "\") Wend strLinkedDbName = Mid(strLinkedFullDbName, ii + 1) If Dir(curdir & strLinkedDbName) <> strLinkedDbName Then 'database from which table is connected not in current directory MsgBox "Database " & strLinkedDbName & " waaruit " & myTable.Name & " komt staat niet op de huidige directory, als de te linken database van naam veranderd is link dan met de hand opnieuw anders wordt wellicht de verkeerde link gebruikt" Else ' is table connected to database in current directory If strLinkedFullDbName <> curdir & strLinkedDbName Then ' connected to database in another directory or another replica in same directory so reconnect table strDescription = "Database=" & curdir & strLinkedDbName myTable.Connect = "MS Access;PWD=helpmij;" & strDescription On Error Resume Next myTable.RefreshLink SetProperty myTable, "Description", strDescription End If End If End If Next Exit_CFSD: Exit Function CFSD_Error: MsgBox Err.Description, vbCritical Resume Exit_CFSD Resume End Function
BTW de code die een foutmelding geeft moet je in bovenstaand voorbeeld gewoon weghalen.
HTH![]()
je moet je tabellen ook eerst weggooien en daarna weer toevoegen.
okeeeeee, ga ik proberen
We gebruiken essentiële cookies om deze site te laten werken, en optionele cookies om de ervaring te verbeteren.