Zum Inhalt springen

Access: Listenauswahl speichern


shad0w

Empfohlene Beiträge

Hi,

ich hab eine zwischentabelle angelegt, um zu veranstaltungen beliebig viel equipment zu speichern (Beamer, Pinnwand etc.pp.):

Veranstaltung 1 -> n VeranstaltungEquipment n <- 1 Equipment

Nun moechte ich die Equipmenteintraege in einem Listefeld zur Mehrfachauswahl anzeigen ... soweit kein Prob. Was muss ich aber nun machen, um in der VeranstaltungEquipment-Tabelle einen neuen Eintrag mit der VeranstaltungsID und der EquipmentID zu erstellen?

danke schonmal

Link zu diesem Kommentar
Auf anderen Seiten teilen

das ist schon alles klar. Das prob ist eben das formular an sich. Ich hab ne listbox mit den ergebnissen einer abfrage (equipment). Fuer jeden angeklickten eintrag (multi-choice) soll dann ein neuer Datensatz in der Zwischentabelle angelegt werden, um die Verknuepfung zwischen Veranstaltung und Equipment herzustellen ...

d.h. die Eintraege 1,3,5 und 9 sind ausgewaehlt, also sollen beim speichern 4 neue Datensaetze angelegt werden, die das Equipment 1,3,5 und 9 mit der Veranstaltung verbinden.

danke

Link zu diesem Kommentar
Auf anderen Seiten teilen

kann ich da nen button 'speichern' anlegen, mit dem ich die sql-statements ausfuehren kann?

Ja, ist gar kein Problem.

docmd.runsql "INSERT INTO tabelle (feld1,feld2) VALUES (wert1,wert2);"

bzw. mit Variablen

docmd.runsql "INSERT INTO tabelle (feld1,feld2) VALUES (" & wert1 & ",'" & wert2 & "');"

Wert1 wäre in dem Fall eine Zahl und Wert2 ein String. Bei Strings brauchst du die einzelnen Hochkommas um Access zu sagen, das es sich bei der Variablen um einen String handelt.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Zeilenanzahl=dcount("id","Tabelle","where-Bedingung")

Damit bekommst du die Anzahl der Datensätze in dem Listenfeld. Die where-Bedingung ist die selbe wie bei der SQL-Anweisung mit der du die Datensätze in das Listenfeld schreibst

for Zeile=0 to Zeilenanzahl-1

if Liste.Selected(Zeile)=true then

docmd.runsql "INSERT INTO tabelle (feld1) VALUES (" & Liste.Value & ");"

end if

next Zeile

Das geht das Listenfeld Zeile für Zeile durch und prüft ob die Zeile ausgewählt wurde, falls ja schreibt es den Wert der gebundenen Spalte (kann man in den Eigenschaften des Listenfeldes einstellen) in die Tabelle.

Das ganze ist jetzt nur aus dem Kopf raus und ungetestet, sollte aber so in etwa gehen. Vielleicht geht es auch noch eleganter, hab aber auch schon länger nichts mehr mit Access gemacht.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...