Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!

Mobiles Hauptmenü

Neueste Beiträge

#11
Formular / Re: Formularfelder ausblenden
Letzter Beitrag von Debus - Dezember 05, 2025, 16:37:32
Hey, generell würde ich aber mal versuchen, die vielen Felder zu einem Tag zusammen zu fassen. Wenn es immer die gleichen sind die ein oder ausgeblendet werden sollen.

Du kannst allen betroffenen Feldern im Eigenschaftsblatt (Register ,,Sonstiges") einen gemeinsamen Tag geben, z.B. Gruppe1. Dann wie folgt ein oder ausblenden:

Dim ctl As Control
    For Each ctl In Me.Controls
        If ctl.Tag = "Gruppe1" Then
            ctl.Visible = False
        End If
    Next ctl

Dim ctl As Control
    For Each ctl In Me.Controls
        If ctl.Tag = "Gruppe1" Then
            ctl.Visible = True
        End If
    Next ctl

Gruß
Holger






#12
Access Programmierung / Re: Frage zur Suche in Tabelle...
Letzter Beitrag von PhilS - Dezember 05, 2025, 16:11:43
Zitat von: Gockel67 am Dezember 05, 2025, 15:44:37habe ich mir ein Beispiel auf dem Internet gesucht welches für meine Zwecke auch funktioniert.
Gegen dein Vorgehen ist vom Prinzip her nichts einzuwenden.

Kürzer schreiben könnte man es so:
Me.lblVideo.Visible = DCount("*","tblKartenVideo", "ID_Haupttabelle LIKE '*" & strSuchwert & "*'") Viel wichtiger als die Länge des Codes, ist aber ob du ihn verstehst. Wenn deine Fassung für dich verständlicher ist, dann bleibe dabei.

Was hier aber als merkwürdig auffällt ist das: "ID_Haupttabelle LIKE '*" & strSuchwert & "*'"
Eine ID ist normalerweise ein Wert, den man als ganzes betrachtet. Eine Suche mit LIKE erscheint da potenziell falsch zu sein.
Wenn du auf exakte Übereinstimmung prüfen willst, dann so: "ID_Haupttabelle = '" & strSuchwert & "'"
Das wird höchstwahrscheinlich auch deutlich schneller ausgeführt.
#13
Formular / Re: Formularfelder ausblenden
Letzter Beitrag von PhilS - Dezember 05, 2025, 16:02:05
Zitat von: Rainer_73 am Dezember 05, 2025, 15:53:20Markiert wird ".finanzierung". Kann es sein, dass dieses Feld nicht gefunden wird, weil es das nur in der Tabelle "Fahrzeuge" gibt? Falls ja, wie kann ich VBA dazu bringen, dass dieses Feld (und auch alle weiteren genannten Felder) in der Tabelle "Fahrzeuge" gefunden werden?
Die Fehlermeldung deutet tatsächlich darauf hin, dass es das Feld "finanzierung" in deinem *Formular* nicht gibt.
Tabellen sind hier nicht relevant, es geht ja um ein Formular. Schau im Entwurf des Formular nach, wie das  Kontrollkästchen, das an das Feld "finanzierung" gebunden ist, heißt. Falls der Name Kontrollkästchen123 ist, solltest du es umbenennen zu "Finanzierung" oder "chkFinanzierung"und diesen Namen dann in deinem Code verwenden.
#14
Formular / Formularfelder ausblenden
Letzter Beitrag von Rainer_73 - Dezember 05, 2025, 15:53:20
Hallo,
ich bin ganz neu hier und alles, was ich bisher in Access gemacht habe, habe ich mir irgendwie selbst beigebracht. Dabei habe ich VBA bisher vermieden. Nun möchte ich aber ein Formular so einrichten, dass einige Felder nur angezeigt werden, wenn ein Ja/Nein-Feld aktiviert wurde.
Ich habe dazu untenstehenden Code eingegeben, bekomme dann aber immer eine Fehlermeldung "Fehler beim Kompilieren: Methode oder Datenobjekt nicht gefunden"

Markiert wird ".finanzierung". Kann es sein, dass dieses Feld nicht gefunden wird, weil es das nur in der Tabelle "Fahrzeuge" gibt? Falls ja, wie kann ich VBA dazu bringen, dass dieses Feld (und auch alle weiteren genannten Felder) in der Tabelle "Fahrzeuge" gefunden werden?

Hier nun der verwendete VBA-Code.

Private Sub Form_AfterUpdate()
' Prüfen, ob das Kontrollkästchen aktiviert (Ja/Wahr) ist
    If Me.finanzierung.Value = True Then
        ' Felder einblenden
        Me.eur_darlehnsbetrag.Visible = True
        Me.txt_zinssatz.Visible = True
        Me.txt_laufzeit.Visible = True
        Me.dat_auszahlung.Visible = True
        Me.dat_rate_beginn.Visible = True
        Me.dat_rate_ende.Visible = True
        Me.eur_annuität.Visible = True
        Me.eur_annuität_laufzeit.Visible = True
        Me.eur_zinsen_laufzeit.Visible = True
    Else
        ' Felder ausblenden
        Me.eur_darlehnsbetrag.Visible = False
        Me.txt_zinssatz.Visible = False
        Me.txt_laufzeit.Visible = False
        Me.dat_auszahlung.Visible = False
        Me.dat_rate_beginn.Visible = False
        Me.dat_rate_ende.Visible = False
        Me.eur_annuität.Visible = False
        Me.eur_annuität_laufzeit.Visible = False
        Me.eur_zinsen_laufzeit.Visible = False
    End If

End Sub
#15
Access Programmierung / Frage zur Suche in Tabellen
Letzter Beitrag von Gockel67 - Dezember 05, 2025, 15:44:37
Moin Gemeinde,

da ich so etwas bisher noch nie gemacht habe, habe ich mir ein Beispiel auf dem Internet gesucht welches für meine Zwecke auch funktioniert.

    Dim strSuchwert As String
    Dim strSQL As String
    Dim rs As DAO.Recordset

    strSuchwert = Me.ID

    ' SQL-Abfrage mit Platzhalterparameter erstellen
    strSQL = "SELECT * FROM tblKartenDokumente WHERE ID_Haupttabelle LIKE '*" & strSuchwert & "*';"

    ' Recordset öffnen und an ein Ergebnis-Formular binden
    Set rs = CurrentDb.OpenRecordset(strSQL, dbOpenSnapshot)

    If Not rs.EOF Then
        ' Ergebnis-Formular öffnen und Recordset übergeben (oder Daten direkt anzeigen)
        lblDokument.Visible = True
    Else
        lblDokument.Visible = False
    End If

    rs.Close


    ' SQL-Abfrage mit Platzhalterparameter erstellen
    strSQL = "SELECT * FROM tblKartenVideo WHERE ID_Haupttabelle LIKE '*" & strSuchwert & "*';"

    ' Recordset öffnen und an ein Ergebnis-Formular binden
    Set rs = CurrentDb.OpenRecordset(strSQL, dbOpenSnapshot)

    If Not rs.EOF Then
        ' Ergebnis-Formular öffnen und Recordset übergeben (oder Daten direkt anzeigen)
        lblVideo.Visible = True
    Else
        lblVideo.Visible = False
    End If

    rs.Close

Meine Frage: Lässt sich das ganze kompriemieren bzw. beschleunigen oder gibt es noch andere Möglichkeiten?

Liebe Grüße und ein schönes Wochenende
Jörg
#16
Access Programmierung / Re: Erl unplausibel
Letzter Beitrag von PhilS - Dezember 05, 2025, 13:02:46
Zitat von: Doming am Dezember 05, 2025, 08:13:32Ist Erl doch nicht so zuverlässig wie gedacht?
Nun ja, was soll denn Erl() gemäß Dokumentation eigentlich tun?
- Spoiler: Das ist eine Fangfrage.

Wenn Programmcode kompiliert wird (auch VBA wird kompiliert), ist es nicht in allen Fällen zuverlässig möglich eine Anweisung im kompilierten Programm eindeutig einer Zeile im ursprünglichen Quellcode zuzuordnen.

Insbesondere mit VBA-64bit gibt es einige Berichte darüber, dass Erl() nicht zuverlässig die Ausgangszeile des Programmcodes zurückgibt.

Es gibt oft sinnvollere Möglichkeiten um die (möglichen) Ursachen von Fehlern im Programmcode bereits im Voraus zu erkennen. Bei deinem Beispiel mit "Datei nicht gefunden" könnte man vor dem Zugriff prüfen, ob eine erforderliche Datei existiert oder nicht.



#17
Access Programmierung / Erl unplausibel
Letzter Beitrag von Doming - Dezember 05, 2025, 08:13:32
Hallo,

ich habe in meinen Datenbanken eine zentrale Fehlertabelle, d.h. Fehler (auch unterdrückte) werden in eine Tabelle eingetragen. Häufen sich Fehler in bestimmten Unterprozeduren und es ist nicht klar ersichtlich, welche Zeile gemeint ist, füge ich Zeilennummern ein und schreibe sie beim Fehler mit ins Protokoll.

Jetzt habe ich allerdings im Protokoll Zeilennummern, die es gar nicht gibt.
Ich nummeriere 4stellig (aus optischen Gründen) und im Protokoll steht eine 5stellige Erl(?).
Ein anderes Protokoll zeigt mir Zeile 1360 mit Code 53 - Datei nicht gefunden als Fehler an, in Zeile 1360 steht
1360                MsgBox "Ich würde jetzt den Updater starten!", 16, _
                           "Die Softwarestände sind unterschiedlich"

Die Fehlerbehandlung ruft folgende Zeile auf Fehler:
    Fehlerprot "ModulAnmelder", "SWCheck", Err.Number, Err.Description, "Erl=" & Erl, True
    Resume Ende
End Sub
Und das Fehlermodul sieht so aus Public Sub Fehlerprot(Formul As String, _
                      Proz As String, _
                      Code As Long, _
                      Descr As String, _
                      Optional Zusatz As String, _
                      Optional KeinHalt As Boolean)
 Dim strSQL As String, Aus As Boolean, Info As String
    On Error Resume Next
    Descr = Replace(Descr, "'", "-")
    strSQL = "INSERT INTO tbl_Stoerung (Melder, Comp, Zeit, Programm, Versio, Formelar," _
                                       & "Prozedur, Code, Descr, Zusatz) " _
           & "VALUES ('" & Environ("Username") _
           & "', '" & Environ("Computername") _
           & "', " & SQLNow _
           & ", '" & Prog _
           & "', " & Versio _
           & ", '" & Formul _
           & "', '" & Proz _
           & "', " & Code _
           & ", '" & Descr

     If Nz(KeinHalt, False) Then GoTo Sprung
    If Code <> 0 Then
        If MsgBox("Hm, da habe ich wohl etwas falsch gemacht," & vbCrLf & vbCrLf & _
                "(" & Code & ") - " & Descr & vbCrLf & vbCrLf & _
                "Soll ich " & Prog & " entnervt beenden?", _
                276, "Ein Fehler ist aufgetreten") = vbYes Then Aus = True
    End If
Sprung:
    If Aus Then
        Info = "(Quit) "
    ElseIf KeinHalt Then
        Info = "(KeinHalt) "
    Else
        Info = "(Weiter) "
    End If
    strSQL = strSQL & "', '" & Info & "- " & Nz(Zusatz, "") & "')"
   
    Debug.Print "-------------------------------"
    Debug.Print "Fehler in " & Formul, "Prozedur " & Proz
    Debug.Print Code & " - " & Descr
    Debug.Print "Zusatz: " & Zusatz
    Debug.Print "KeinHalt = " & KeinHalt, Zusatz
    Debug.Print "-------------------------------"
   
    CurrentDb.Execute strSQL
   
    If Aus Then Abmelden
    On Error GoTo 0
End Sub

Ist Erl doch nicht so zuverlässig wie gedacht?

Gruß
 Doming
#18
Access Programmierung / Re: Frontend / Backend
Letzter Beitrag von Knobbi38 - Dezember 04, 2025, 15:51:34
Hallo Gerdi,

auch wenn es zunächst so aussieht, als ob alles richtig laufen würde, ist es dringend angeraten, dass jeder Anwender eine eigene Kopie des Frontends bekommt, da sonst Access durcheinanderkommt, erst Recht bei 20 bis 30 Anwendern .

Knobbi38


#19
Access Programmierung / Frontend / Backend
Letzter Beitrag von Gerdi - Dezember 04, 2025, 15:32:38
Hallo zusammen, ich wenig wissender habe eine Grundsatzfrage. Auf einem Server befindet sich ein Access Programm,  welches in Frondend und Backend aufgeteilt ist. Jetzt kann ich das Frontend auf den Rechner der User kopieren. Das ist einfach und mir vollkommen klar. Jetzt die Frage, ist es nicht möglich einfach eine Verknüpfung auf den Desktop des Users zu erstellen?? Welche Probleme bekomme ich damit. Ausprobiert habe ich es, scheinbar klappt alles!!?? wie ist es bei 20 oder 30 User??

Gruß an alle

Gerdi
#20
Pro und Contra Access-o-Mania / Re: Frage an Admin
Letzter Beitrag von PhilS - Dezember 02, 2025, 15:46:14
Zitat von: Köbi am Dezember 02, 2025, 14:14:16Könnte man die nicht ergänzen mit einer Adresse, damit man sich trotz dem Ausschluss noch an euch wenden kann, um nachzufragen, weshalb der Bann und was man allenfalls dagegen machen kann?
Das ist eine sinnvolle Idee. :-)
Ich muss diese Info jeweils per Hand eintippen, daher ist die bisher sehr knapp gehalten. 
Ich werde eine Copy&Paste-Vorlage erstellen und zukünftig dann reinkopieren.