Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Zwei Kombinationsfelder in Access verknüpfen

Empfohlene Antworten

Hallo Leute.

ich habe ein Problem und hoffe, dass ihr es lösen könnt.

Ich muss zwei Kombinationsfelder miteinander verknüpfen.

Wenn ich aus dem einem Kombinationsfeld eine Kategorie auswähle, möchte ich im zweiten Kombinationsfeld nur die dazugehörigen Unterkategorien aufgelistet haben.

Wie bekomme ich dieses hin.

Tschüß

Als erstes solltest du ein Kombinationsfeld erstellen, welches alle Hauptkategorien enthält --> nennen wir es H_Kategorie.

Danach erstellst du ein zweites Kombinationsfeld, allerdings ungebunden.

Dieses darf nicht auf irgendeine Tabelle zugreifen --> dies nennen wir U_Kategorie.

Dann benötigst du in etwa folgenden Quelltext:

Private Sub H_Kategorie_AfterUpdate()

U_Kategorie = Null

End Sub

------------------------------------------------------------

Private Sub U_Kategorie_Enter()

On Error GoTo fehler

Dim sqlstr2 As String

sqlstr2 = "SELECT Unterkategorie FROM tbl_Unterkategorie"

If Not IsNull(Me.H_Kategorie) Then sqlstr2 = sqlstr2 & "WHERE Hauptkategorie='" & H_Kategorie & "' "

If IsNull(Me.H_Kategorie) Then sqlstr2 = "SELECT Unterkategorie FROM tbl_Unterkategorie"

U_Kategorie.RowSource = sqlstr2

ende:

Exit Sub

fehler:

Resume ende

End Sub

Sohab ich es jedenfalls gemacht, als ich das selbe Problemhatte.

Probier es einfach aus.

Klappt noch nicht so ganz.

Trotzdem vielen Dank und schönes Wochenende.

A-Fisch

Dann erzähl doch einfach mal, wie du deine Tabellen aufgebaut hast.

Hast du die Hauptkategorien und die dazu gehörigen Unterkategorien in einer Tabelle oder wie ist deine Datenbank genau aufgebaut?

Hi Pittiplatsch.

Am Freitag Nachmittag war mir alles schon zu viel geworden.

Heute morgen habe ich es durch deine Hilfe in der Arbeit geschafft, das Problem zu lösen

Nochmals besten Dank

:uli

A-Fisch :marine

Nochmals hallo Pittiplatsch

Habe nun eine andere Frage an dich.

Wie kann ich die Daten eines Access-Formulars in einer Tabelle der selben Datenbank abspeichern?

Das ist mein Vorhaben:

Ich trage Daten in ein Formular, dass nun auch die funktionsfähigen Kombinationsfelder besitzt, ein und möchte durch das Drücken eines Buttons diese Daten in einer Tabelle zur Archivierung ablegen.

Ich habe es schon mit dem Assistenten verucht, doch bei dieser Assistentenhilfe kann ich nicht die Zieltabelle eingeben, wo die Daten abgespeichert werden sollen.

Hoffe auf deine Kompetenz wieder zähen zu können.

Danke im Voraus für deine Bemühungen

A-Fisch

Hi,

demnach ist dein Formular ungebunden?

Wenn dein Formular gebunden ist, wird es sofort in der Tabelle eingetragen. Bei einem ungebundenen Formular mußt du mit VBA eine Prozedur erstellen, die dir die Daten in der Tabelle speichert, in dem du z.B. die Formularfelder alle mit "txt_" bze. "cob_" und dem Spaltennamen benennst und dann alle Formularfelder "durchläufst" und alle Spalten deiner Tabelle durchläufst und wenn der Name des Formularfeldes (ohne "txt_" ...) mit dem Namen der Spalte übereinstimmt, werden die Daten gespeichert. So oder so ähnlich. Noch zu unterscheiden wäre insert und update. Und zum Laden brauchst du dann ggf. eine weitere Prozedur.

Grüße von ipu

Danke für dein Vertrauen in meine Kompetenz :):)

Wenn ich dich richtig verstanden habe, willst du einfügen und nicht ändern, also wäre in deinem Fall der AddNew - Befehl anzuwenden

Hier erstmal ein kleines Code - Beispiel:

Private Sub speichern_Click()

Dim db As DAO.Database

Dim rs As DAO.Recordset

'Festlegen der Datenbank

Set db = CurrentDb()

'Festlegen der Tabelle

Set rs = db.OpenRecordset("deine_Zieltabelle")

'Prüfen auf Vorhandensein der Daten um doppelte Daten zu vermeiden

sqlstr = "SELECT COUNT(*) FROM deine_Zieltabelle WHERE Kriterienangabe"

'Wenn kein gleicher Datensatz vorhanden ist

If (db.OpenRecordset(sqlstr, dbOpenDynaset)(0) = 0) Then

rs.AddNew

rs!feld1 = Textfeld1

rs!feld2 = Textfeld2

rs!feld3 = Textfeld3

rs!feld4 = Textfeld4

rs!feld5 = Textfeld5

rs.Update

'Sonst

else

msgbox("Datensatz bereits erfasst")

endif

end sub

Den mußt du dir entsprechend deiner Textfelder und deiner Zieltabelle anpassen. Nach Möglichkeit solltest du 1 - 2 Kriterien bei der Prüfung auf vorhandene Datensätze angeben.

Sollte es doch noch Schwirigkeiten geben, einfach noch mal fragen.

Hallo,

Ich danke dir recht herzlich. Hab nur eine Zeile des Quellcodes falsch gehabt.

A-Fisch

:)

Hi Pittiplatsch,

ich bins noch mal. Zurzeit brauch ich ständig deine Kompetenz.

Mein nächstes Problem liegt darin, dass ich nicht weiß wie ich ein Bild in einem neuen Formular öffnen kann, wenn der Quellpfad in einem ersten Formular eingetragen wird.

Hier will ich auf das Feld BildURL, wo der Pfad für das Bild steht, klicken können und das Bild in einem zweiten Formular mir anschauen können

A-Fisch

  • 2 Wochen später...

Habe es schon selbst geschafft.

Tschüß

A-Fisch

:marine

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Konto

Navigation

Suchen

Suchen

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.