sophia87
Goto Top

Access Zugriff auf Bearbeiter neu regeln

Hallo liebe Community,

ich bin neu hier und bräuchte eure Hilfe.

Ich habe im Netz nach Lösungen für mein Problem gesucht, aber leider irgendwie nix gefunden. Vielleicht liegt es auch daran, dass ich nicht genau weis nach was ich suchen muss. Ich beschäftige mich zum ersten Mal mit Datenbanken und deren Erstellung. Nun muss ich eine alte Datenbank (DB) überarbeiten und habe dabei die Db in ein Frontend und Backend aufgeteilt.

Mein Problem ist:
Beim öffnen des Frontend wird eine Abfrage gestartet, die nach dem Bearbeiter fragt. Dabei scheint der Zugriff auf die entsprechende Tabelle ( im Backend) aber nicht richtig zu funktionieren, denn es tritt ein Fehler auf. Laufzeitfehler 3219. Was mach ich falsch?

Mein Code:
Sub currentBearbeiterSetzen()
    Dim strCurrentUserKuerzel As String
    Dim db As Database
    Dim rst As Recordset
    
    strCurrentUserKuerzel = CurrentUser()
    
    ' Programm beenden, wenn Bearbeiterküzel nicht 3 Zeichen lang  
    If Len(strCurrentUserKuerzel) <> 3 Then
        MsgBox "BearbeiterKürzel muß genau 3 Zeichen lang sein!" & NL & "Programm wird verlassen!"  
        Application.Quit
    End If
    
    ' aktuellen Benutzer in tblXBearbeiter suchen und Daten in globalen BearbeiterRecord übernehmen  
    Set db = CurrentDb()
    Set rst = db.OpenRecordset("tblXBearbeiter", dbOpenTable)  
    
    rst.Index = "Kürzel"  
    rst.Seek "=", strCurrentUserKuerzel  
    If rst.NoMatch Then
        MsgBox "Das eingegebene Kürzel ist nicht in Holist registriert" & NL & "Programm wird verlassen!"  
        rst.Close
        Application.Quit
    End If
    
    currentBearbeiter.lngID = rst!ID
    currentBearbeiter.strKürzel = rst!Kürzel
    currentBearbeiter.strName = rst!Name
    currentBearbeiter.strWordPfad = rst!WordPfad
    currentBearbeiter.bolPCTel = rst!PCTel
    currentBearbeiter.strAdrSelect = rst!AdrSelect
    
    currentBearbeiter.lngVorAD = rst!VorAD
    currentBearbeiter.lngVorTyp = rst!VorTyp
    currentBearbeiter.lngVorQuelle = rst!VorQuelle
    currentBearbeiter.strVorOrt = rst!VorOrt
   
    rst.Close
    Set db = Nothing
End Sub
Ich würde mich freuen, wenn ihr mir einen Tipp geben könntet.

Vielen Dank im Voraus

[Edit Biber] Codeformatierung nachgezogen. [/Edit]

Content-Key: 297370

Url: https://administrator.de/contentid/297370

Ausgedruckt am: 19.03.2024 um 11:03 Uhr

Mitglied: Biber
Biber 25.02.2016, aktualisiert am 26.02.2016 um 13:43:48 Uhr
Goto Top
Moin Sophia87,

willkommen im Forum.

Bitte benutze künftig Codeformatierung beim Posten von Codeschnipseln.

Ein Recordset auf eingebundene Tabellen (in Frontend/Backend aufgeteilte) kann nicht den Recordset-Typ Table (oder dbOpenTable) haben.
Die Seek-Methode setzt aber diesen Typ voraus. -> TILT

Also

  • entweder ein Recordset vom Typ Dynaset (dbOpenDynaset) verwenden und mit den Find-Methoden suchen ( FindFirst etc). Is' sich ein bissl langsamer als Seek, aber - so what! Bei einer Bearbeiter-Tabelle mit vermutlich anderthalb Bearbeitern... who cares.

  • oder die externe Datenbank öffnen und dann wieder ein Recordset vom Typ Table verwenden:
Dim db As DAO.Database
Dim rs As DAO.Recordset
Set db = DBEngine.Workspaces(0).OpenDatabase("Dein Bäckend")  
Set rs = db.OpenRecordset("DeineBäckendTabelle", dbOpenTable)  
...

P.S. Diese merkwürdige "irgendwo definierte" Variable NL für vermutlich "Neue Linie" ist kein schöner Stil & Anblick.
nimm die vorgesehenen Konstante vblf oder vbcrlf.
P.P.S. Und schreib bitte nie wieder: "Vielen Dank im Voraus" in einem meiner Bereiche.
Ist zwar grammatikalisch vorbildlich, aber nicht gern gesehen. Siehe FAQ face-wink

Grüße
Biber
Mitglied: Sophia87
Sophia87 26.02.2016 um 12:27:31 Uhr
Goto Top
Hallo Biber,

ich danke dir für deine schnell und super tolle Hilfe. Es hat geklappt.

PS. Es tut mir leid, wenn ich die FAQ`s verletzt habe.

Gruß Sophia
Mitglied: Sophia87
Sophia87 26.02.2016 um 12:38:14 Uhr
Goto Top
Hallo,

ich habe doch noch eine kurze Frage.
Ich habe das BE von meinem privaten in ein öffentliches Laufwerk verschoben. Nun passt anscheinend der Pfad nicht mehr vom FE zum BE. Wie es dies zu bewerkstelligen?

Gruß
Mitglied: Biber
Biber 26.02.2016 um 13:47:44 Uhr
Goto Top
Moin Sophia,

PS. Es tut mir leid, wenn ich die FAQ`s verletzt habe.
Ach was, diese leicht verletzten FAQs werden schnell wieder gesund, keine Sorge. face-wink

Zu deiner anderen Frage:
Kann ich so mit den doch eher wenigen Inormatischen nicht beantworten.
Und ausser uns zwei beiden wir niemand diese Folgefrage in diesem Beitrag/unter diesem Titel finden.
Bitte mach doch bitte eine neue Frage auf mit sinnvollem Titel und ein, zwei Detailinfos mehr.

Dann kommen wir schneller zu einer Lösung und auch ins Wochenende

Grüße
Biber