Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!

Mobiles Hauptmenü

Select Statement in ein Listenfeld einlesen

Begonnen von strolli, Juli 06, 2010, 11:48:41

⏪ vorheriges - nächstes ⏩

strolli

Hallo,
ich bin Anfänger was Access + VBA angeht.
Ich habe eine Variabel "varid" in der ein Zahl enthalten ist.
Nun möchte ich mit dieser Variablen eine SQL - Statement ausführen und das Ergebnis dann gerne in eine Listbox ausgeben lassen. Folgenden Code habe ich bereitdas


varid = Me.OpenArgs
MsgBox "Firmen_id:" & idvar
sqlstr = "SELECT takeoff.id, takeoff.firmenid, takeoff.namen, takeoff.description * FROM takeoff where firmenid =" & varid & ";"

Me.RecordSource = sqlstr


Mit Me.RecordSource müßte ich doch nun das Statement ausführen?!?! Oder ?
Aber wie geht es nun weiter?

Gruß
Strolli

strolli

Achso, hatte noch vergessen,

strVariable = [Tabelle.Feld]
Me.Liste4.Value = strVariable

Liste4 ist die neue Lsitbox, in der die Werte eingeführt werden sollen.
Aber eigentlich müßte ich doch die Abfrage mit einer While Schleife durch laufen lassen. Wie ist denn bei einer SQL Anweisung dann die Synthax?

blackoutNO

Hallo,

die Datensatzquelle für eine Listbox ändert man mit

Me.Listboxname.RowSource
Cheers
Jörn

strolli

Ich habe nun folgenden Code eingegeben:

firmenid = Me.OpenArgs
MsgBox "Firmen_id:" & firmenid
 Me!List6.RowSource = "SELECT takeoff.id, takeoff.firmenid, takeoff.namen, takeoff.description FROM takeoff where" & firmenid & ";"

Ich bekomme nun allerdings keine Ergebnisse. Muß noch suchen wie ich das SQL - Statement ausführe oder ?

blackoutNO

Cheers
Jörn

strolli

sorry, aber dann passiert leider nichts


Dim sqlstr
Dim strVariable


firmenid = Me.OpenArgs

 Me!Liste6.RowSource = "SELECT takeoff.id, takeoff.firmenid, takeoff.namen, takeoff.description FROM takeoff where" & firmenid & ";"
 Me.Liste6.Requery

blackoutNO


Dim intKrit as integer

intKrit = Me.OpenArgs

  Me!Liste6.RowSource = "SELECT takeoff.id, takeoff.firmenid, takeoff.namen, takeoff.description FROM takeoff " & _
                                        "where Firmenid = " & intKrit
  Me.Liste6.Requery
Cheers
Jörn

strolli

Ähm, habe ich doch auch so gemacht !
Was ist denn nun bei Dir anders

blackoutNO

Cheers
Jörn

strolli

nein, leider nicht.
Je mehr ich darüber nachdenke kommt mir die komplexität bei Access zutage.
welche Eigenschaften sollte ich denn hier die Listbox (Liste6)  geben?
Herkunftstyp?
Datensatzherkunft? u.s.w


blackoutNO

Ok, nochmal von vorne.
Du übergibst mit Openargs ein Argument. Dieses Argument ist was? Ein string oder eine Zahl?

so würde der Code aussehen wenn dein Argument eine Zahl ist:

Dim strSQL as string
strSQL = "SELECT * FROM TabellenName " & _
"WHERE Kriterienfeld = " & Me.Openargs
Me.Liste6.RowSource = strSQL
Me.Liste6.Requery


Und so wenn dein Kriterium ein string(Buchstaben, zeichen & Zahlenkombination):

Dim strSQL as string
strSQL = "SELECT * FROM TabellenName " & _
"WHERE Kriterienfeld = '" & Me.Openargs & "'"
Me.Liste6.RowSource = strSQL
Me.Liste6.Requery
Cheers
Jörn

strolli

ich übergebe eine Zahl
d.h. folgender Code ist nun enthalten

Dim sqlstr As String

firmenid = Me.OpenArgs
MsgBox "Firmen_id:" & firmenid
' sqlstr
 'Me!Liste6.RowSource =
 strSQL = "SELECT takeoff.id, takeoff.firmenid, takeoff.namen, takeoff.description FROM takeoff where" & firmenid
 Me.Liste6.RowSource = strSQL
 Me.Liste6.Requery


Jetzt bekomme ich in der ersten Spalte der Liste6 "select takeoff.id,"

blackoutNO

Hallo,

du hast meine Codes nicht ordentlich gelsen. In der WHERE-Klausel musst du schon angeben, welches Feld mit firmenid verglichen werden soll.

Dim sqlstr As String

MsgBox "Firmen_id:" & Me.OpenArgs
' sqlstr
  'Me!Liste6.RowSource =
  strSQL = "SELECT takeoff.id, takeoff.firmenid, takeoff.namen, takeoff.description FROM takeoff where takeoff.firmenid = " & Me.OpenArgs
  Me.Liste6.RowSource = strSQL
  Me.Liste6.Requery
Cheers
Jörn

strolli

okay sorry, hab ich übersehen.
mußte es aber ein wenig anders machen, da in der Variable bereits "firmenid=" enthalten ist
also habe ich folgende Zeile nun strSQL = "SELECT takeoff.id, takeoff.firmenid, takeoff.namen, takeoff.description FROM takeoff where takeoff." & firmenid
Wenn ich mir nun das SQL Statement ausgeben lasse (Msgbox) erhalte ich folgendes
"SELECT  takeoff.id, takeoff.firmenid, takeoff.namen, takeoff.description FROM takeoff where takeoff.firmenid=2"
Das scheint also zu stimmen. Trotzdem bekomme ich kein Ergebnis nur die ersten Wörter der SQL abfrage.
Ich glaube, das SQL Statement wird auf der DB Tabelle gar nicht ausgeführt oder ?


blackoutNO

Hallo,

also ist in deinen Openargs, doch ein string enthalten?!
Ich hab dir mal ein Beispiel gebastelt. Damit du das ganze nachvollziehen kannst.





[Anhang gelöscht durch Administrator]
Cheers
Jörn