collapse

* Benutzer Info

 
 
Willkommen Gast. Bitte einloggen oder registrieren. Haben Sie Ihre Aktivierungs E-Mail übersehen?

* Wer ist Online

  • Punkt Gäste: 59
  • Punkt Versteckte: 1
  • Punkt Mitglieder: 1

Es sind keine Mitglieder online.

* Forenstatistik

  • stats Mitglieder insgesamt: 14072
  • stats Beiträge insgesamt: 67582
  • stats Themen insgesamt: 9104
  • stats Kategorien insgesamt: 5
  • stats Boards insgesamt: 17
  • stats Am meisten online: 415

Autor Thema: Bei Kombinationsfeld nicht die Textauswahl sonder ID weitergeben  (Gelesen 536 mal)

Offline MrB

  • Newbie
  • Beiträge: 41
Hallo
habe wieder eine Frage
Ich habe ein Kombinationsfeld erstellt und wollte, das dies nach Auswahl seinen Inhalt an eine Abfrage übergibt.
In die Abfrage habe ich
[Formulare]![frm_Listenerstellung]![Text22]in die Kriterien eingefügt.
Was aber nach einigem Probieren ja nicht gehen kann, da hier die ID_WS (also eine Zahl) benötigt wird.
Außerdem würde ich gerne mehr wie eine ID_WS eingeben.
Habe dazu ein Textfeld erstellt, in das die Zahlen eingefügt werden können (Textausgabe klappt [=[Kombinationsfeld6]] nur Die ID nicht).
Frage jetzt muss ich hier völlig anders vorgehen oder kann man das mit einfachen Mittel nach meiner Idee umsetzen ?

Cord
 

Offline DF6GL

  • Global Moderator
  • Access-Oberguru
  • *****
  • Beiträge: 23453
Re: Bei Kombinationsfeld nicht die Textauswahl sonder ID weitergeben
« Antwort #1 am: Oktober 01, 2018, 14:31:24 »
Hallo,

Zitat
Was aber nach einigem Probieren ja nicht gehen kann, da hier die ID_WS (also eine Zahl) benötigt wird.

das wäre an sich schon richtig.  Was hast Du probiert?

Vermutlich ist das Kombi (wieso heißt das "Text22" ?)  falsch aufgebaut und dessen Eigenschaften sollten sinngemäß so befüllt sein:

Datensatzherkunft:  Select ID, Feld2, Feld3 from tblDeineTabelle order by Feld2
gebundene Spalte: 1
Spaltenanzahl: 3
Spaltenbreiten:  0cm;4cm;4cm


 "Mehrfachwahl" geht nur mit einem Listenfeld mit entspr. Einstellung und Zusammenbau der Where-Condition mittels VBA.

Ein Auflisten von Zahlen in einem Textfeld allein funktioniert nicht, weil die Trennzeichen (hier Kommata als Teil der SQL-Syntax) nicht automatisch aus dem Textfeldinhalt (z. B.:  "1,3,4,6") erkannt werden können.

Offline MrB

  • Newbie
  • Beiträge: 41
Re: Bei Kombinationsfeld nicht die Textauswahl sonder ID weitergeben
« Antwort #2 am: Oktober 01, 2018, 15:09:09 »
Hallo Franz
TEXT22, weil ich das Textfeld erstellt habe und die Ausgabe des Kombinationsfeldes dorthin übergeben habe.
Das umschreiben des Kombifeldes habe ich probiert funktioniert sehr gut. Werde ich mir merken.  ;) für später.

Listenfeld habe ich erstellt und auch kann auch mehrere Auswählen, in die Abfrage habe ich 
[Formulare]![frm_Listenerstellung]![ListenFeldWorkshopBezeichnung]eingefügt. Funktioniert aber leider nicht egal ob ich einen oder mehrere Anwähle.
Cord


 
 

Offline DF6GL

  • Global Moderator
  • Access-Oberguru
  • *****
  • Beiträge: 23453
Re: Bei Kombinationsfeld nicht die Textauswahl sonder ID weitergeben
« Antwort #3 am: Oktober 02, 2018, 09:30:34 »
Hallo,

lies meinen vorherigen Post nochmal genau....

Zitat
"Mehrfachwahl" geht nur mit einem Listenfeld mit entspr. Einstellung und Zusammenbau der Where-Condition mittels VBA.

Offline MrB

  • Newbie
  • Beiträge: 41
Re: Bei Kombinationsfeld nicht die Textauswahl sonder ID weitergeben
« Antwort #4 am: Oktober 02, 2018, 13:47:41 »
Gibt es denn irgendwo Anleitungen wo das tatsächlich erklärt wird ?
Habe leider nirgends mehr gefunden als die Erstellung.

Cord
Habe was gefunden
Private Sub ListenFeldWorkshopBezeichnung_AfterUpdate()

    Dim var As Variant

    Dim str

    For Each var In Me.ListenFeldWorkshopBezeichnung.ItemsSelected

        str = str & ";" & var

    Next var

    Me!Text34 = Mid(str, 2)

End Sub
Habe das ausprobiert und wird wunderbar an das Textfeld weitergegeben, aber ich musste feststellen, das die ID die im textfeld erscheint nicht die aus der tblWorkshops ist sondern eine die das Feld wohl selber vergibt. 
« Letzte Änderung: Oktober 02, 2018, 14:06:23 von MrB »
 

Offline DF6GL

  • Global Moderator
  • Access-Oberguru
  • *****
  • Beiträge: 23453
Re: Bei Kombinationsfeld nicht die Textauswahl sonder ID weitergeben
« Antwort #5 am: Oktober 02, 2018, 16:00:37 »
Hallo,

erklärende Stellen gibt es viele, auch hier im Forum..


Zitat
Private Sub ListenFeldWorkshopBezeichnung_AfterUpdate()

    Dim var As Variant

    Dim strStr as String

    For Each var In Me.ListenFeldWorkshopBezeichnung.ItemsSelected

        strStr = strStr & "," & Me.ListenFeldWorkshopBezeichnung.Column(0,var)

    Next var
 If Len(strStr) Then
    strStr = Mid(strStr, 2)
 End If

' ab hier strStr für eine Where-Condition verwenden oder für die Eigenschaft "Filter" eines Forms zur Filterung:

Me.Filter = "ID_WS in (" & strStr & ")
Me.FilterOn =true
End Sub

Offline MrB

  • Newbie
  • Beiträge: 41
Re: Bei Kombinationsfeld nicht die Textauswahl sonder ID weitergeben
« Antwort #6 am: Oktober 08, 2018, 10:49:19 »
Danke nochmal für die Info.
Erklärungen habe ich versucht hier zu finden bin aber gescheitert.

Gibt es irgendwo eine Liste mit möglichen Befehlen für VBA und wie die Syntax sein muss ?
Auch für Sondergeschichten, wie das ich für meine Abfrage nicht nur ein Kriterium einfügen kann sondern Mehrere über die Auswahl im Listenfeld.
Die Ausgabe klappt super ins Textfeld aber jetzt muss das in die Abfrage über where wie du geschrieben hast.
Toll wäre wirklich sowas wie eine Liste falls es das gibt.
Inzwischen habe ich mir gedacht wäre es besser, die Abfrage über einen Button OK zu starten.
Muss ich die Übertragung dann erst machen oder soll die lieber im Combifeld sein ?

So viele Fragen für die ich keine Antworten finde, weil ich wahrscheinlich falsch frage  :(
Im Object Browser habe ich den Befehl where nicht einmal gefunden

Cord

 

Offline DF6GL

  • Global Moderator
  • Access-Oberguru
  • *****
  • Beiträge: 23453
Re: Bei Kombinationsfeld nicht die Textauswahl sonder ID weitergeben
« Antwort #7 am: Oktober 08, 2018, 13:11:21 »
Hallo,

eine Liste so, wie Du Dir es vorstellst oder wünscht, gibt es nicht. 

Zunächst musst Du auch unterscheiden zwischen SQL-Statements und deren Syntax (z. B. im Abfrageentwurf/Ansicht/SQL-Ansicht)  und VBA-Code mit dessen Syntax, (z. B. im VBE, Aufruf mit <Strg><F11> aus Access heraus).


Für VBA kannst Du die Hilfe(taste) (F1)  im VBA-Editor (VBE) bemühen.


Grundsätzlich wäre es aber angebracht, sich mit den Grundlagen von Access (einschließlich VBA)  mittels Buch oder Tutorials und Beispiel-DBs zu beschäftigen. 


Googlen hilft dabei...

http://www.vba-wissen.de/

Grundlegende Kenntnisse in (allgemeiner) Programmierung sind dabei eigentlich auch Voraussetzung, derweil Access eher eine Programmierumgebung darstellt, bzw. bereitstellt.


Einfach nur mit der Copy&Paste-Methode zu arbeiten, wird nicht zielführend sein.



Offline MrB

  • Newbie
  • Beiträge: 41
Re: Bei Kombinationsfeld nicht die Textauswahl sonder ID weitergeben
« Antwort #8 am: Oktober 08, 2018, 14:28:43 »
Leider fehlt mir die Grundlage zum Programmieren.
Ich werde versuchen mich weiterzubilden und die Ozeane zwischen den Wissensinseln zu verkleinern.
Trotz allem sind viele Dinge mir nicht klar woher das Wissen kommt, wenn es nirgends eine DB für alle möglichen Befehle existiert.

Um die strStr in die Abfrage zu bekommen habe ich gesucht und das hier https://support.microsoft.com/de-de/help/509116 gefunden. Habe das auch ausprobiert, aber kein Erfolg.

Zitat
Einfach nur mit der Copy&Paste-Methode zu arbeiten, wird nicht zielführend sein.
Ist natürlich keine echte Lösung da muss ich dir leider Recht geben

Cord
Ps hatte geglaubt mit den Assistenten zum Ziel zu kommen weit gefehlt

 

Offline DF6GL

  • Global Moderator
  • Access-Oberguru
  • *****
  • Beiträge: 23453
Re: Bei Kombinationsfeld nicht die Textauswahl sonder ID weitergeben
« Antwort #9 am: Oktober 08, 2018, 15:13:48 »
Hallo,

na, dann zeig doch mal Deinen Versuch...

angepasste Ereignisprozedur, um eine Mehrfachauswahl für die Datenherkunft eines Kombifeldes zu benutzen:

Zitat
Private Sub ListenFeldWorkshopBezeichnung_AfterUpdate()

    Dim var As Variant
    Dim strSQL as String
    Dim strStr as String
    Dim strKrit as String

    For Each var In Me.ListenFeldWorkshopBezeichnung.ItemsSelected

        strStr = strStr & "," & Me.ListenFeldWorkshopBezeichnung.Column(0,var)

    Next var
 If Len(strStr) Then
    strStr = Mid(strStr, 2)
 End If


strKrit = " Where ID_WS in (" & strStr & ")  Order By Feld1"   'Where-Condition und mit Sortierung auf Feld1

strSQL = " Select ID, Feld1, Feld2 from tblDeineTabelle "    'SQL-String als Abfrage

strSQL = strSQL & strKrit   SQL-String mit Kriterium erweitern

Me!Kombi2.Rowsource = strSQL

End Sub



Wohlgemerkt, dies ist nur eine von mehreren Methoden, Parameter als Where-Condition an eine Abfrage zu übergeben und soll zeigen, wie SQL und VBA gemischt werden kann.

Ziel ist es, an die Datensatzherkunft eines Kombis einen mit dynamischen Kriteriumswerten versehenen SQL-String (Abfrage) zuzuweisen.


Offline Beaker s.a.

  • Access Guru
  • ****
  • Beiträge: 1892
Re: Bei Kombinationsfeld nicht die Textauswahl sonder ID weitergeben
« Antwort #10 am: Oktober 08, 2018, 16:22:49 »
Hallo Franz,
If Len(strStr) ThenDas finde ich nicht schön.
Gerade für Anfänger können solche "Verkürzungen" eher verwirrend sein.
Len gibt einen Longwert zurück, wie er in der OH nachlesen kann, und du
verwendest es als Boolean. Auch wenn's am Ergebnis nichts ändert würde
ich es immer so schreiben
If Len(strStr) > 0 Thenoder ganz ohne Len
If strStr <> vbNullString Then
gruss ekkehard
--
Beaker s.a., der lieber an seinem eigenen Projekt arbeiten würde/sollte, aber irgendwie immer gerne seinen Senf dazu gibt ;-)
S.M.I².L.E.
 

Offline DF6GL

  • Global Moderator
  • Access-Oberguru
  • *****
  • Beiträge: 23453
Re: Bei Kombinationsfeld nicht die Textauswahl sonder ID weitergeben
« Antwort #11 am: Oktober 08, 2018, 21:30:24 »
Hallo,

prinzipiell hast Du Recht, aber diese Konvertierungen begegnen einem in VBA auf Schritt und Tritt, auch an solchen Stellen, an denen es nicht bemerkt wird. Am schlimmsten (für Anfänger) zu verstehen, ist m. M. nach die Variant-Geschichte  ("NULL", Sub-Datentypen)

True ist definiert als <> 0
False ist definiert als =0

Solange der Wertebereich (Long, Integer, Boolean) nicht überschritten/verletzt wird, ist es (bis auf die Tiefen des Maschinencodes (Assembler) ) egal, ob man Long-0 mit Boolean-0 (False) vergleicht. 

?True gibt -1 zurück.  Welchen Datentyp hat dann dieses "-1" ? Oder ?False entspr.?

IMHO ist es gerade für einen Anfänger eine gute Stelle, sich Gedanken über Vergleiche (eigentlich Ausdrücke) zu machen  ;)

Aber : es ist nur  meine Meinung ..

Offline MrB

  • Newbie
  • Beiträge: 41
Re: Bei Kombinationsfeld nicht die Textauswahl sonder ID weitergeben
« Antwort #12 am: Oktober 09, 2018, 09:54:11 »
Jetzt bin ich wirklich durch.
Ich beantrage erstmal Bücher und fange an zu lesen. Ich hoffe solche Dinge sind da auch beschrieben.

@Franz Wenn ich den Code einfüge den du gepostet hast fragt er nach dem Kombi2 muss ich das erstellen? und wenn wofür ?

Ich werde das erstmal "zu Fuß" machen und nur die nötigen Abfragen erstellen und händisch starten, sodass ich das erstmal so nutze.
Genau wie ein Formular zur Erstellung oder Bearbeitung der einzelnen Teile trage ich dann erstmal so ein.

Wird wohl ein langer Weg, hatte meinem Chef gesagt ich möchte einen Kurs Access aber naja wie das denn so ist ....

Cord
Ps Danke an dich Franz und auch an Ekkehard
« Letzte Änderung: Oktober 09, 2018, 09:58:21 von MrB »
 

Offline DF6GL

  • Global Moderator
  • Access-Oberguru
  • *****
  • Beiträge: 23453
Re: Bei Kombinationsfeld nicht die Textauswahl sonder ID weitergeben
« Antwort #13 am: Oktober 09, 2018, 10:20:19 »
Hallo,

"Kombi2"  ist der Name des Kombis (den ich jetzt nicht kenne) , das die gefilterten Datensätze anzeigen soll.

Den Namen musst Du natürlich an Deine Gegebenheiten anpassen. 


Oder für was brauchst Du denn die Abfrage?




Offline MrB

  • Newbie
  • Beiträge: 41
Re: Bei Kombinationsfeld nicht die Textauswahl sonder ID weitergeben
« Antwort #14 am: Oktober 09, 2018, 10:51:23 »
Sollte in die Kriterien einer Abfrage eingefügt werden, sodass ich über das Listenfeld aussuchen kann ob ich einen oder mehrere Workshops in einer Abfrage zusammenfasse.
Z.B. ich brauche nicht nur Klassenräume sonder auch Adminsection und Copiecentre

Cord
Ps Buch wollte ich dies bestellen https://www.amazon.de/gp/product/3836219417?pf_rd_p=9cadea0c-55f1-4f08-936d-e9b2b65b7197&pf_rd_r=S6R737EAHP9XW440AQY3