Office: (Office 2010) Dynamisches Formular (ähnlich wie Produktauswahl in online Shops)

Helfe beim Thema Dynamisches Formular (ähnlich wie Produktauswahl in online Shops) in Microsoft Access Hilfe um das Problem gemeinsam zu lösen; Ich habe zum Test überall was eingetragen in die entsprechende Spalte. Es kann später aber auch sein, dass das Feld nicht gefüllt ist. Da dachte ich... Dieses Thema im Forum "Microsoft Access Hilfe" wurde erstellt von SebbiB, 28. Juli 2015.

  1. Dynamisches Formular (ähnlich wie Produktauswahl in online Shops)


    Ich habe zum Test überall was eingetragen in die entsprechende Spalte. Es kann später aber auch sein, dass das Feld nicht gefüllt ist. Da dachte ich das einfach nichts anzeigt.

    Aber zum eigentlichen Problem..ich habe jetzt jedem Feld Spaltebreiten in cm angegeben. In jedem Feld steht auch was drin, ausser in dem Info-Feld was ich brauche.

    Aber ich verstehe nicht was an


    PHP:
             str_SQL "SELECT Kat1_Ebene2_ID, Kat1_Ebene_1_Dref, Kat1_Ebene2_Name, Kat1_Ebene_2_Info FROM tbl_Kat1_Ebene2 WHERE (((Kat1_Ebene_1_Dref)=" lg_UK1_ID "));"
     
  2. Diese Fehlermeldung kommt aber bestimmt nicht beim Zusammenstellen des Strings für die SQL-Anweisung.

    Der Fehler wird eher hier auftreten (du brauchst in den VBA-Optionen nur die Fehlerbehandlung abdrehen, dann bleibt die Code-Ausführung in der Fehlerzeile stehen, wenn du in der Fehlermeldung auf Debug klickst):
    Code:
    In einer Long- oder String-Variable kann kein NULL-Wert gespeichert werden.
    =>
    Entweder mittels Nz(...) einen Ersatzwert eintragen oder auf Null prüfen und entsprechend reagieren (z. B. Prozedur vorzeitig verlassen).

    mfg
    Josef
     
    Josef P., 3. August 2015
    #32
  3. Danke Josef,

    dass hat mir den entscheidenden Stoß in die richtige Richtung nochmal gegeben.

    nach dem ich daraus


    PHP:
             If Not IsNull(Me.Kombo_Unterkategorie_1.Column(3)) Then
    str_UK1 
    Me.Kombo_Unterkategorie_1.Column(3)
    End If
     
  4. Dynamisches Formular (ähnlich wie Produktauswahl in online Shops)

    Tut mir leid das ich nochmal nerve *tongue.gif*

    Es ist zwar nicht lebenswichtig aber wäre fürs Auge am Ende schöner:

    Durch die vielen Ebenen kann es vorkommen, das sich bei einzelnen Auswahlmöglichkeiten das nächste Dropdown-Menu öffnet und sich dazu kein Eintrag wiederfindet (weil auch keiner vorhanden ist) und dann eben auch eine leere Liste erscheint.

    Wie kann ich im Vorfeld prüfen, ob für die nächste Auswahl die entsprechende nächste Ebene gefüllt ist oder nicht und dementsprechend


    PHP:
             Me.Kombo_Unterkategorie_x.Visible False
     
  5. Keiner einen Vorschlag?

    lg Sebastian *Smilie
     
  6. Hallo!

    Du kannst nach dem Requery einer Combobox mit Combobox.Listcount prüfen, ob Datensätze enthalten sind.

    mfg
    Josef
     
    Josef P., 6. August 2015
    #36
  7. Hallo Josef,

    danke, mit dem Hinweis konnte ich mein Problem lösen *top

    lg Sebastian
     
  8. Dynamisches Formular (ähnlich wie Produktauswahl in online Shops)

    Hallo an alle,

    bin jetzt doch noch auf ein anderes Problem gestoßen.

    Er schneidet mir im Caption den Text im Memo auf 255 Zeichen ab.

    hier nochmal eine Passage aus dem jetzt aktuellen Code


    PHP:
             Private Sub Kombo_Unterkategorie_2_AfterUpdate()

    Dim lg_HK1_ID As Long
    Dim str_HK1 
    As String
    Dim str_UK1 
    As String
    Dim str_UK2 
    As String
    Dim str_UK3 
    As String
    Dim str_UK4 
    As String
    Dim str_UK5 
    As String
    Dim str_UK6 
    As String
    Dim lg_UK1_ID 
    As Long
    Dim lg_UK2_ID 
    As Long
    Dim lg_UK3_ID 
    As Long
    Dim lg_UK4_ID 
    As Long
    Dim lg_UK5_ID 
    As Long
    Dim lg_UK6_ID 
    As Long
    Dim str_SQL 
    As String
    Dim ListControl 
    As Control

    lg_HK1_ID 
    Me.Kombo_Hauptkategorie.Column(0)
    lg_UK1_ID Me.Kombo_Unterkategorie_1.Column(0)
    lg_UK2_ID Me.Kombo_Unterkategorie_2.Column(0)


    If 
    Not IsNull(Me.Kombo_Hauptkategorie.Column(2)) Then
    str_HK1 
    Me.Kombo_Hauptkategorie.Column(2)
    End If

    If 
    Not IsNull(Me.Kombo_Unterkategorie_1.Column(3)) Then
    str_UK1 
    Me.Kombo_Unterkategorie_1.Column(3)
    End If

    If 
    Not IsNull(Me.Kombo_Unterkategorie_2.Column(3)) Then
    str_UK2 
    Me.Kombo_Unterkategorie_2.Column(3)
    End If

    If 
    Not IsNull(Me.Kombo_Unterkategorie_3.Column(3)) Then
    str_UK3 
    Me.Kombo_Unterkategorie_3.Column(3)
    End If

    If 
    Not IsNull(Me.Kombo_Unterkategorie_4.Column(3)) Then
    str_UK4 
    Me.Kombo_Unterkategorie_4.Column(3)
    End If

    If 
    Not IsNull(Me.Kombo_Unterkategorie_5.Column(3)) Then
    str_UK5 
    Me.Kombo_Unterkategorie_5.Column(3)
    End If

    If 
    Not IsNull(Me.Kombo_Unterkategorie_6.Column(3)) Then
    str_UK6 
    Me.Kombo_Unterkategorie_6.Column(3)
    End If

    Me.Kombo_Unterkategorie_3.Visible True

    Select 
    Case lg_HK1_ID

    Case 1
    str_SQL 
    "SELECT Kat1_Ebene3_ID, Kat1_Ebene_2_Dref, Kat1_Ebene3_Name, Kat1_Ebene_3_Info FROM tbl_Kat1_Ebene3 WHERE (((Kat1_Ebene_2_Dref)=" lg_UK2_ID "));"

    Case 2
    str_SQL 
    "SELECT Kat2_Ebene3_ID, Kat2_Ebene_2_Dref, Kat2_Ebene3_Name, Kat2_Ebene_3_Info FROM tbl_Kat2_Ebene3 WHERE (((Kat2_Ebene_2_Dref)=" lg_UK2_ID "));"

    Case 3
    str_SQL 
    "SELECT Kat3_Ebene3_ID, Kat3_Ebene_2_Dref, Kat3_Ebene3_Name, Kat3_Ebene_3_Info FROM tbl_Kat3_Ebene3 WHERE (((Kat3_Ebene_2_Dref)=" lg_UK2_ID "));"

    Case 4
    str_SQL 
    "SELECT Kat4_Ebene3_ID, Kat4_Ebene_2_Dref, Kat4_Ebene3_Name, Kat4_Ebene_3_Info FROM tbl_Kat4_Ebene3 WHERE (((Kat4_Ebene_2_Dref)=" lg_UK2_ID "));"

    Case 5
    str_SQL 
    "SELECT Kat5_Ebene3_ID, Kat5_Ebene_2_Dref, Kat5_Ebene3_Name, Kat5_Ebene_3_Info FROM tbl_Kat5_Ebene3 WHERE (((Kat5_Ebene_2_Dref)=" lg_UK2_ID "));"

    Case 6
    str_SQL 
    "SELECT Kat6_Ebene3_ID, Kat5_Ebene_2_Dref, Kat6_Ebene3_Name, Kat6_Ebene_3_Info FROM tbl_Kat6_Ebene3 WHERE (((Kat6_Ebene_2_Dref)=" lg_UK2_ID "));"

    End Select

    Me
    .Kombo_Unterkategorie_3.RowSource str_SQL
    Me
    .Kombo_Unterkategorie_3.Requery
    Me
    .fehlende_Unterlagen.Caption str_UK2

    Set ListControl 
    Me.Kombo_Unterkategorie_3

    With ListControl
    If .ListCount 1 Then

    Me
    .Kombo_Unterkategorie_2.SetFocus
    Me
    .Kombo_Unterkategorie_3.Visible False

    Else

    Me.Kombo_Unterkategorie_3.SetFocus
    Me
    .Kombo_Unterkategorie_3.Dropdown


    End 
    If
    End With

    End Sub
     
  9. Hallo Sebastian!
    Verstehe ich nicht. Code:
    "Me.fehlende_Unterlagen" ist offenbar ein Bezeichnungsfeld.
    Welches Memo soll in voller Länge ausgeführt werden?
    Werden im Kombifeld "Me.Kombo_Unterkategorie_2" Memofelder angezeigt?
    Aus https://support.office.com/de-de/art...-ea9dff1fa854:
    Anzahl von Zeichen in einem Bezeichnungsfeld 2.048.

    Was hat das Ganze mit
    zu tun? Mit einer Abfrage?

    Um weitere Informationen wird gebeten!

    Wolfgang
     
    wb_3001, 5. Oktober 2015
    #39
  10. Hallo Wolfgang,

    ich habe mich bestimmt laienhaft bzw. falsch ausgedrückt. Ich hatte im Internet nach einer Problemlösung gesucht wo ein Bezeichnungsfeld ein Memo auf 255 Zeichen abschneidet. Durch Unwissenheit habe ich bestimmt eine Lösung zu einem ganz anderem Problem gefunden, welche vielleicht doch nicht anwendbar auf mein Problem ist.

    Im Kombifeld habe ich das Memo mit der Spaltenbreite 0cm ausgeblendet. Aber auch hier wird es abgeschnitten (wenn ich es anzeigen lasse).

    lg Sebastian
     
  11. Hallo Sebastian!

    Ich habe da was gefunden:

    http://www.kurt-aus-kienitz.de/knowh...mbiFelder.html

    Memo-Felder können nicht in voller Länge über die Spalten von Kombinations-/Listenfelder transportiert werden,
    da diese max. 250 Zeichen aufnehmen können.

    Ich muß zugeben, ich wollte noch nie ein Memofeld in einer Spalte eines Kombifeld darstellen. Deshalb ist mir dieses Problem noch nie untergekommen.

    Access limitiert offenbar die Zeichenanzahl einer Spalte auf max. 250 (vielleicht 255) Zeichen.
    Deswegen wird auch nur diese Länge weitergereicht.
    Gleiches gilt sicher auch für Listenfelder.

    Wolfgang
     
    wb_3001, 5. Oktober 2015
    #41
  12. Hallo!

    Falls du mehr als 255 Zeichen benötigst, könntest du den Umweg über das Combobox-Recordset gehen.
    Code:
    Ich bin aber nicht sicher, ob das immer den ausgewählten Datensatz verwendet. => Eventuell mit dem Wert aus der gebundenen Spalte prüfen.

    Falls das nicht zuverlässig funktioniert, bleibt DLookup & Co. als Alternative zum Auslesen der Memo-Werte.

    mfg
    Josef
     
    Josef P., 5. Oktober 2015
    #42
  13. Dynamisches Formular (ähnlich wie Produktauswahl in online Shops)

    Hallo Josef,

    das klappt! Allerdings leider nur genau einmal.

    Wenn ich danach per Makro die entsprechenden Felder zurücksetzen lasse


    PHP:
             Private Sub cmd_Reset_Click()
    Me.Kombo_Hauptkategorie Null
    Me
    .Kombo_Unterkategorie_1 Null
    Me
    .Kombo_Unterkategorie_1.Visible False
    Me
    .Kombo_Unterkategorie_2 Null
    Me
    .Kombo_Unterkategorie_2.Visible False
    Me
    .Kombo_Unterkategorie_3 Null
    Me
    .Kombo_Unterkategorie_3.Visible False
    Me
    .Kombo_Unterkategorie_4 Null
    Me
    .Kombo_Unterkategorie_4.Visible False
    Me
    .Kombo_Unterkategorie_5 Null
    Me
    .Kombo_Unterkategorie_5.Visible False
    Me
    .Kombo_Unterkategorie_6 Null
    Me
    .Kombo_Unterkategorie_6.Visible False


    Me
    .fehlende_Unterlagen.Caption ""

    End Sub
     
  14. Hallo!

    Kannst du das Problem in einer Beispiel-Db zeigen?
    Ich probierte den Recordsetzugriff mit einer Combobox aus und hatte diesen Fehler nicht nachdem ich den Wert auf Null setzte und einen neuen Eintrag auswählte.

    mfg
    Josef
     
    Josef P., 5. Oktober 2015
    #44
  15. Anbei mal eine Testdatenbank ohne echten Inhalt. Das Problem tritt aber auch da auf.

    Vielen Dank für eure Hilfe *Smilie
     
Thema:

Dynamisches Formular (ähnlich wie Produktauswahl in online Shops)

Die Seite wird geladen...
  1. Dynamisches Formular (ähnlich wie Produktauswahl in online Shops) - Similar Threads - Dynamisches Formular Produktauswahl

  2. Dynamische Matrixformeln in nicht dynamischen unterstützenden Excel-Formularen

    in Microsoft Excel Tutorials
    Dynamische Matrixformeln in nicht dynamischen unterstützenden Excel-Formularen: Dynamische Matrixformeln in nicht dynamischen unterstützenden Excel-Formularen Excel für Microsoft 365 Mehr... Weniger...
  3. Dynamisches Formular aus Kreuztabelle??

    in Microsoft Access Hilfe
    Dynamisches Formular aus Kreuztabelle??: Hallooo Habe eine Frage: Ich habe eine Kreuztabelle, welche ich in einem Formular darstellen möchte, da ich per Button noch Auswahlkriterien im Formular zur Anzeige treffen möchte... Nur ist da...
  4. vorhandenes Formular dynamisch mit allen Feldern der akt. Datensatzquelle füllen

    in Microsoft Access Hilfe
    vorhandenes Formular dynamisch mit allen Feldern der akt. Datensatzquelle füllen: Hallo liebe Experten, wie kann ich automatisch alle Felder (Tabellenspalten) der Datensatzquelle im Formular anzeigen lassen, ohne sie händisch in der Entwurfsansicht in den Datenbereich zu...
  5. Bild aus dynamischer URL in Access (Bericht oder Formular) anzeigen

    in Microsoft Access Hilfe
    Bild aus dynamischer URL in Access (Bericht oder Formular) anzeigen: Hallo zusammen, bei folgender Herausforderung komme ich nicht so recht weiter - evtl. könnte mir ja hier jemand von den Experten helfen. Ich möchte gerne in einem Access-Bericht (bzw. auch einem...
  6. Formular: Spalten Dynamisch ein- und ausblenden

    in Microsoft Access Hilfe
    Formular: Spalten Dynamisch ein- und ausblenden: Hallo Freunde! ;-) Ich habe die Aufgabe eine Ansicht zu erstellen, in der einzelne Felder verschiedener Tabellen angezeigt werden. Der spannende Teil ist nun, das der Anwender über mehrere...
  7. Word/Excel Formulare mit dynamischen Abruf von Daten aus geschlossenen Excel Dateien

    in Microsoft Excel Hilfe
    Word/Excel Formulare mit dynamischen Abruf von Daten aus geschlossenen Excel Dateien: Hallo zusammen, ich hoffe bei euch ist alles gut. Ich möchte verschiedene gesicherte Formulare in denen lediglich bestimmte Felder/Zellen bearbeitet werden können (Word oder Excel, am liebsten...
  8. Word Formular dynamisch mit Daten aus Access fuellen

    in Microsoft Access Hilfe
    Word Formular dynamisch mit Daten aus Access fuellen: Guten Morgen, ich muss gleich vorweg sagen, ich bin ein aboluter Access-Legastheniker und habe leider auch von VBA so gar keine Ahnung. Also bitte seid geduldig mit mir ;) Ein Kollege...
  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