Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

Neueste Beiträge

#91
Access Programmierung / Re: Bericht zoomen
Letzter Beitrag von MzKlMu - März 11, 2026, 16:19:31
Hallo,
in der Seitenvorschau kann doch ganz klassisch gezoomt werden. Unten rechts habe ich da einen Schieberegler. Reicht das nicht ?
#92
Access Programmierung / Bericht zoomen
Letzter Beitrag von alfini - März 11, 2026, 15:51:03
Hallo Forum,

ich möchte die Berichte beim anzeigen zum besseren Lesen optimal anzeigen.
Leider konnte mir CO-Pilot auch kein brauchbares Ergebnis liefern.
Deshalb frage ich hier nach.
Für eure Mühe bedanke ich mich im voraus.
Gruß alfini
 
#93
Formular / Re: Kombifelder leeren
Letzter Beitrag von Bitsqueezer - März 11, 2026, 09:33:37
Hallo,

am besten erst mal die Namen anpassen, je länger man das hinausschiebt, desto schwieriger wird es später.

Makros solltest Du tunlichst vermeiden, ein Mischmasch aus Makros und VBA kann man kaum debuggen, und alles, was Du mit Makros machen kannst, kannst Du immer auch in VBA machen. Also am besten vergessen, daß es Makros gibt und gleich richtig programmieren.

Der gezeigte VBA Code löscht die jeweils anderen beiden Komboboxen und führt dann einen Requery aus. Das lädt alle Datensätze neu und springt zum ersten Datensatz im Recordset.

Du mußt Dich mit der Reihenfolge der Events beschäftigen, siehe hier:
https://support.microsoft.com/de-de/topic/reihenfolge-von-ereignissen-f%C3%BCr-datenbankobjekte-e76fbbfe-6180-4a52-8787-ce86553682f9#bm1

Auszug von dort:
Die Ereignisse Exit und LostFocus für ein Steuerelement, dessen Wert sich ändert, treten nach den Ereignissen BeforeUpdate und AfterUpdate auf

Die Suche führst Du in "AfterUpdate" aus, es wird also gesucht, danach erst tritt Exit auf und Du leerst die Komboboxen und führst ein Neuladen des Recordsets aus, was wieder auf den ersten Datensatz springt.

Also:
1. Konsequent bei VBA bleiben
2. Events und ihre Reihenfolge kennenlernen (Exit wird in der Praxis fast nie verwendet, i.d.R. immer AfterUpdate)
3. Requery kennenlernen und richtig anwenden (zum Suchen brauchst Du das nicht)

Gruß

Christian
#94
Formular / Re: Kombifelder leeren
Letzter Beitrag von Knobbi38 - März 11, 2026, 09:30:06
Hallo,

zunächst würde ich mal sagen, dass deine Tabellen nicht normalisiert sind. Das solltest du auf jeden Fall tun, bevor du dich der GUI nzw. den Formularen zuwendest.

Als Lösung für dein Problem würde ich dir vorschlagen, dass du in den Komboboxen AfterUpdate Ereignis eine Suchbedingung zusammensetzt und dann eine gemeinsame Prozedur aufrufst, welche die jeweils anderen Komboboxen "leert" und mir FindFirst entsprechend der Suchbedingung auf den passenden DS, wenn vorhanden, positioniert.

Ist kein großes Ding, aber wie gesagt, musst du erstmal das Datenmodell etwas aufbereiten.

Knobbi38
#95
Formular / Re: VLC ActiveX element
Letzter Beitrag von Holger Jacobi - März 11, 2026, 07:26:13
Hallo Andreas,

extern starten klingt gut, aber wohin schreibe ich dann den Code?

Gruß

Holger
#96
Formular / Re: VLC ActiveX element
Letzter Beitrag von Holger Jacobi - März 11, 2026, 07:23:01
Zitat von: andyfau am März 10, 2026, 18:05:08Hallo Holger,
da ActiveX schon länger von Microsoft vermieden wird, ist es vielleicht besser das Programm extern zu starten.

Dim vlcPath As String
Dim videoPath As String
Dim shellCommand As String

vlcPath = "C:\Program Files\VideoLAN\VLC\vlc.exe" ' Pfad anpassen
videoPath = "C:\Videos\meinVideo.mp4" ' Pfad zum Video

shellCommand = """" & vlcPath & """ """ & videoPath & """ --fullscreen"
Shell shellCommand, vbNormalFocus
#97
Formular / Kombifelder leeren
Letzter Beitrag von Cherry Brandy - März 10, 2026, 23:57:29
Hier: zu Access 2021 unter Windows 11

Guten Abend,
ich bin Laie, ,,langjähriger fortgeschrittener Anfänger" und bei meiner aktuellen DB mal wieder an meine Grenzen gestoßen, weswegen ich auf Tipps und Korrektur hoffe.

Konkret bastele ich an einer Vokabeldatenbank. Meine Tabelle

tbl_Vokabeln hat u.a. folgende Felder
ID_Vokabeln
txt_Deutsch
txt_Chinesisch
txt_Pinyin                  Pinyin ist ein System zur Umschrift der Schriftzeichen auf lateinische Buchstaben)

In meinem Formular frm_Vokabeln wird jede Vokabel mit einigen weiteren Informationen angezeigt.
Zur Auswahl habe ich drei Kombifelder angelegt, mit denen ich einen Vokabeldatensatz durch das deutsche Wort, das chinesische Wort oder die Umschrift auswählen kann.

Ich habe die Kombifelder (anfängerfreundlich) mit Access-Bordmitteln über das Makroereignis ,,nach Aktualisierung" Suchen nach Datensatz, Aufnahme: Erster, Bedingung: ="[ID_Vokabeln] = " & Str(Nz(Screen.ActiveControl;0)) angelegt und alles funktioniert gut.

Nun ärgert mich aber – zum wiederholten Male in einer meiner Datenbanken –, dass in den Kombifeldern immer der zuletzt gewählte Begriff aus dem Datensatz stehenbleibt. Wenn ich z.B. auf Deutsch ,,Haus" auswählen und anschließend einen weiteren, anderen Vokabelsatz über den chinesischen Begriff z.B. für ,,Auto", bleibt auch bei Auswahl des zweiten Datensatzes im ersten Kombifeld der Begriff ,,Haus" stehen.
Das stört mich maßlos.

Daher habe ich versucht, per VBA die Kombifelder zu leeren. Es sind Kombinationsfeld174, Kombinationsfeld180 und Kombinationsfeld285 – und ja, es ist mir an dieser Stelle bewusst und unangenehm, dass ich sie nicht besser benannt/umbenannt habe.  :-[

Der folgende VBA-Code macht jedoch genau was er soll:
Private Sub Kombinationsfeld285_Exit(Cancel As Integer)
  If Not IsNull(Me.Kombinationsfeld285) Then
    Me.Kombinationsfeld174 = Null
    Me.Kombinationsfeld180 = Null
    Me.Requery
  End If
End Sub

Private Sub Kombinationsfeld174_Exit(Cancel As Integer)
If Not IsNull(Me.Kombinationsfeld174) Then
Me.Kombinationsfeld285 = Null
Me.Kombinationsfeld180 = Null
Me.Requery
End If
End Sub

Private Sub Kombinationsfeld180_Exit(Cancel As Integer)
If Not IsNull(Me.Kombinationsfeld180) Then
Me.Kombinationsfeld174 = Null
Me.Kombinationsfeld285 = Null
Me.Requery
End If
End Sub

Mein Problem:
es funktioniert nur entweder-oder. ENTWEDER die Kombifelder suchen den richtigen Datensatz aus aber die Felder bleiben voll ODER der Code leert die Felder, aber es wird auch nach Auswahl und Verlassen des Kombifeldes nur der erste Datensatz angezeigt.

Meine diversen Versuche, entweder Kombifeldauswahl und Leeren verschiedenen Ereignissen zuzuordnen oder VBA-Code (wie Me.Recordset.FindFirst "ID_Vokabeln = " & Me.Kombinationsfeld174 oder Tests mit Me.Dirty oder Recordset.Bookmark) zu erraten, endeten alle in den unterschiedlichsten Fehlermeldungen.
An der Stelle merke ich, dass ich programmieren nie richtig gelernt, sondern immer so vor mich hingewurschtelt habe.

Ich wäre Euch dankbar für Tipps, wie ich das umsetzen kann.
Ich werde noch ca. 20 Minuten hier im Forum sein und dann erst ab morgen Nachmittag wieder nachsehen können. Vielen Dank schon mal vorab!
#98
Formular / Re: VLC ActiveX element
Letzter Beitrag von Knobbi38 - März 10, 2026, 19:13:57
Hallo Holger,

das VLC ActiveX solltest du nicht mehr verwenden, weil es viele Fehler enthält und auch nicht mehr gepflegt wird. Du solltest stattdessen auf eine andere Alternative ausweichen.

Knobbi38
#99
Formular / Re: VLC ActiveX element
Letzter Beitrag von andyfau - März 10, 2026, 18:05:08
Hallo Holger,
da ActiveX schon länger von Microsoft vermieden wird, ist es vielleicht besser das Programm extern zu starten.

Dim vlcPath As String
Dim videoPath As String
Dim shellCommand As String

vlcPath = "C:\Program Files\VideoLAN\VLC\vlc.exe" ' Pfad anpassen
videoPath = "C:\Videos\meinVideo.mp4" ' Pfad zum Video

shellCommand = """" & vlcPath & """ """ & videoPath & """ --fullscreen"
Shell shellCommand, vbNormalFocus
#100
Formular / VLC ActiveX element
Letzter Beitrag von Holger Jacobi - März 10, 2026, 15:25:47
Auf meinem Laptop läuft Access 2016 32 bit und ich habe den VLC Media Player 32 bit installiert.
Die ActiveX Plugins waren bei der Installation aktiviert.
In Access sind im Trustcenter die ActiveX Einstellungen für die Office Anwendungen auf ,,Eingabe aufforderung anzeigen, bevor alle Steuerelemente mit minimalen Einschränkungen aktiviert werden."
Trotzdem erscheint im Formularentwurf ActiveX Steuerelemente das VLC Element nicht und in der Datenbank, in der ich es benötige wird es auch als fehlend angesagt.
Wo liegt der Fehler?
Grüße
Holger