Office: (Office 2010) Formular öffnen durch Doppelklick in der Liste

Helfe beim Thema Formular öffnen durch Doppelklick in der Liste in Microsoft Access Hilfe um das Problem gemeinsam zu lösen; Hallo Leute, wie der Titel schon sagt, bin ich gerade dabei im VBA etwas zu programmieren, was mir beim Doppelklick in einer Zeile von einer Liste das... Dieses Thema im Forum "Microsoft Access Hilfe" wurde erstellt von Stephanjap, 7. März 2016.

  1. Formular öffnen durch Doppelklick in der Liste


    Hallo Leute,

    wie der Titel schon sagt, bin ich gerade dabei im VBA etwas zu programmieren, was mir beim Doppelklick in einer Zeile von einer Liste das dazugehörige Formular öffnet...

    Ich habe z.B. eine Liste wo die Bezeichnung und Nummer der Betriebsmittel stehen. Nun will ich durch Doppelklick in der Liste dann ein Formular öffnen, welches mir dann die weiteren Daten (wie ein Bild etc.) vom Betriebsmittel enthält.


    Code:
    So weit bin ich zumindest schon mal gekommen. Da wird mir halt noch das Formular mit dem ersten Datensatz angezeigt, egal wo ich reinklicke.

    Wie krieg ich es hin, dass mir der "richtige" Datensatz im Formular angezeigt wird?

    Und dann will ich noch, dass das Formular nicht bearbeitbar ist. Alle Felder sollten "gesperrt" sein oder ähnliches. Wie kriege ich das hin?


    VG, Stephanjap


    Edit: Das müsste doch über das Feld bemiID gehen, oder?

    Code:
    bei ??? weiß ich halt nicht, was ich schreiben soll. Im Grund genommen soll es ja die bemiID von dem Datensatz sein, die man in der Liste per Doppelklick anklickt.

    :)
     
    Stephanjap, 7. März 2016
    #1
  2. Hi,


    Code:
    Bzgl. des Sperrens, könntest du ein OpenArgs mit übergeben, welches im Load-Ereignis des zu öffnenden Formulars ausgewertet werden könnte, um die AllowEdit oder andere Eigenschaften des Formulars zu setzen. Das kann sich dann allerdings auch auf funktionale Buttons auswirken, die dann nicht mehr bedienbar wären, je nachdem welche Art der Sperrung du wählst.
    Alternativ könnte man das eigentliche Formular als UFO einbetten und dann nur das UFO sperren.
    Wenn das auch nicht so gewünscht ist, könntest du noch die Controls per Tag markieren und in der Schleife fürs Editieren sperren oder disablen.
     
    fredfred, 8. März 2016
    #2
  3. Hi,

    also ich hab jetzt den Code genommen und statt ListFeldName bemiID eingesetzt.

    Wieso funktioniert das aber nicht? Liegt das daran, dass das Formular und die Liste unterschiedliche Datensatzherkünfte haben? Das Formular hat die Tabelle bemi als DSH während die Liste eine Abfrage als DSH hat, wobei diese auch auf der Tabelle bemi beruht.
     
    Stephanjap, 8. März 2016
    #3
  4. Formular öffnen durch Doppelklick in der Liste

    Hi,
    entscheidend ist der Name des Steuerelements.
    Wie heißt dein Listenfeld ?
    Weiter entscheidend ist die gebundene Spalte des Listenfelds bzw. die Rowsoure. Die gebundene Spalte legt fest welcher Wert welcher Spalte das Listfeld erhält. Per Default ist die gebundene Spalte auf 1 und sollte auch so bleiben.
    Die Datensatzherkunft der Liste sollte dann so aussehen.
    Code:
    Erste Spalte blendet man dann normaleweise aus, weil der Autowert normalerweise nicht interessiert.
     
    fredfred, 8. März 2016
    #4
  5. also mein Listenfeld heißt "SearchResults"

    Als Rowsource (DSH ne?) hab ich die Abfrage "QRY_SearchAll"

    Die DSH sieht so au:

    Code:
    genau bemiID hab ich ausgeblenet.

    Muss ich also "QRY_SearchAll.bemiID" as Listfeldname nehmen?
     
    Stephanjap, 8. März 2016
    #5
  6. Hi,
    nein !
    Wieso denn ...

    Oben schreibst du noch
    Du willst doch den Wert aus dem Steuerelement auf dem Formular.
    Das ist der Name des Feldes in der Query und stellt schon die eine Seite des Vergleichs.

    .Findfirst "TabellenFeldAbfragefeldIndemGesuchtWird= " & nz(Me.SteuerelementAusDemDerGesuchteWertZuEntnehmenIst,0)
     
    fredfred, 8. März 2016
    #6
  7. Ok ich bin gerade ein bisschen verwirrt...

    Ist mit "ListFeldName" wie du oben schreibst der Name des Listenfelds gemeint oder der Feldname aus dem Listenfeld mit dem verglichen wird?

    Also der Steuerelementinhalt vom Listenfeld ist noch leer... muss ich da jetzt die Tabelle "bemi" einsetzen oder wie?


    Edit: hab im Anhang mal hochgeladen, wo das Listenfeld im Formular zu sehen ist. Da ist noch zu sehen, was ich meine mit "bemi" im Steuerelementinhalt einsetzen... weil vorher war das Feld nämlich noch leer.
     
    Stephanjap, 8. März 2016
    #7
  8. Formular öffnen durch Doppelklick in der Liste

    Hi,
    der Steuerelementinhalt ist hier völlig belanglos.
    Der dient dazu das Feld festzulegen in dem der Wert gespeichert wird.
    In einem Steuerelement welches zur Suche dient ist es falsch den Steuerelementinhalt zu setzen. Mit jeder Suche würde so der gespeicherte Wert des Datensatzes im Feld verändert werden - das wäre eine Katastrophe.
    Du mußt beim Kombi/Listenfeld unterscheiden zwischen der "gebundenenSpalte" und ob das Kombi gebunden ist.
    Das sind 2 Dinge.
    Die "gebundene Spalte" gibt den Wert aus der da festgelegten Spalte an, die das Kombi/Liste zurückgibt wenn man den Value abfragt.
    Ist das Kombi gebunden, dann hat das Kombi (bzw. das Formular) eine Bindung an eine Tabelle oder Abfrage.
    D.h. im Steuerelementinhalt ist das Feld angegeben, in der die Auswahl gespeichert wird.

    Grundsätzlich ist zwischen Name des Steuerelements und dem Steuerelementinhalts zu unterscheiden. Da Access für beide Sachen den gleichen Namen verwendet, falls man das Steuerelement nicht selbst erstellt, kann man das leicht übersehen, dass das 2 verschiedene Dinge sind. Genau das führt hier im Thread ja auch offensichtlich zum Problem.
     
    fredfred, 8. März 2016
    #8
  9. Hmm...

    also um auf deinen ersten Post zurück zu kommen: Müsste ich für ListFeldName "SearchResults" (Name des Listenfelds) oder "bemiID" (Name eines Felds in der Liste) angeben?

    Beides klappt halt nicht und ich weiß noch immer noch nicht so genau woran ich jetzt arbeiten muss.

    Edit: also ich erhalte dann folgende Fehlermeldung, wenn ich bemiID bei ListFeldName in deinem Code einsetze.
     
    Stephanjap, 8. März 2016
    #9
  10. Hi,
    das habe ich jetzt schon mehrmals erklärt.

    Der Steuerelementname ist zu verwenden. Also der Name des Kombis oder der Liste (SearchList) war das glaube ich.
    Du hast 2 Seiten des Vergleichs:
    Links steht in der Regel das Feld in dem gesucht wird (Tabellen oder Abfragefeld), rechts steht der Wert nach dem gesucht wird bzw. der Steuerelementname in dem dieser Wert festgelegt wurde. Links bzw. rechts ist prinzipiell egal.

    Im übrigen "funktioniert nicht" ist eine Aussage, die mich persönlich sehr nervt.
    Es beshreibt, weder was du probiert hast, wie dein String inzwischen aussieht, noch was passiert wenn du es ausporiberst.

    Was soll man also mit der Aussage anfangen, weiter nach Details in der Nase bohren ? *grins
     
    fredfred, 8. März 2016
    #10
  11. Achso okay. Ich hab jetzt SearchResults als FeldListName genommen. Jetzt wird bei Doppelklick das Formular mit dem entsprechenden Datensatz geöffnet. Hat also funktioniert! :P

    Bei der WhereCondition der Funktion DoCmd.OpenForm gibt man also Feldname und den Namen des "Orts" (Textfeld, Kombibox, List) wo dieser gesucht werden soll an?

    Edit: Hat also jedenfalls geklappt und ich hoffe ich habs jetzt ein bisschen verstanden. Danke!
     
    Stephanjap, 8. März 2016
    #11
Thema:

Formular öffnen durch Doppelklick in der Liste

Die Seite wird geladen...
  1. Formular öffnen durch Doppelklick in der Liste - Similar Threads - Formular öffnen Doppelklick

  2. Webadresse aus Formular öffnen

    in Microsoft Access Hilfe
    Webadresse aus Formular öffnen: Hallo zusammen, ich bin am verzweifeln. Ich habe in einem Formular ein Feld mit Pfaden zu einer Webadresse mit unterschiedlichen Unterseiten. In meinem Fall ist das https://www.discogs.com...
  3. Formular mit bestimmten Datensatz durch Doppelklick öffnen

    in Microsoft Access Hilfe
    Formular mit bestimmten Datensatz durch Doppelklick öffnen: Hallo zusammen, ich bin ganz neu hier und hoffe ich drücke mich verständlich aus, falls nicht, lasst es mich gerne wissen. Ich möchte eine Datenbank aufbauen, in der ich Personendaten erfassen...
  4. Formular mit Bedingung öffnen aus einem Listenfeld heraus (VBA)

    in Microsoft Access Hilfe
    Formular mit Bedingung öffnen aus einem Listenfeld heraus (VBA): Hallo zusammen, ich möchte aus einem Listenfeld ein Formular mit einer Bedingung öffnen, wenn ich die Enter/Return-Taste drücke. Hinweis: im gleichen Formular ist bereits die Enter-Taste schon...
  5. Formular öffnen und Fokus danach auf ein anderes Formular schieben

    in Microsoft Access Hilfe
    Formular öffnen und Fokus danach auf ein anderes Formular schieben: Hallo, ich habe ein kleines Problem, mit dem ich nicht so recht weiter komme und wo die Experten vielleicht wissen, wie es geht. Und nachdem mir neulich schon geholfen wurde, komme ich nochmal....
  6. Eingebettetes PDF-Formular öffnen, mit Zellwerten einer Excel befüllen und speichern

    in Microsoft Excel Hilfe
    Eingebettetes PDF-Formular öffnen, mit Zellwerten einer Excel befüllen und speichern: Hallo Office-Experten, ich habe ein Problem in VBA, bei welchem ich einfach nicht weiterkomme und auch nach umfangreicher Suche keine Lösung gefunden habe. Folgende Problemstellung liegt vor:...
  7. Ein Formular mehrfach öffnen

    in Microsoft Access Hilfe
    Ein Formular mehrfach öffnen: Hallo alle zusammen, könntet ihr mir bitte helfen? Ich habe ein Suchformular wie im Anhang erstellt. Wenn ich auf den "Weiter-Button" klicke, kann ich jedesmal nur ein Formular (frmKundenkontakt)...
  8. VLC Player in Access Formular öffnen

    in Microsoft Access Hilfe
    VLC Player in Access Formular öffnen: Ich möchte den VLC Player aus einem Access Formular öffnen, bzw. möchte ich bestimmte Titel aus dem Formular mit VLC Player abspielen. Kann mir jemand helfen wie ich dass anstelle?? Danke
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden