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
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?
Hallo,
die Datensatzquelle für eine Listbox ändert man mit
Me.Listboxname.RowSource
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 ?
Hallo,
Nach dem code noch ein Me.Liste6.Requery
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
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
Ähm, habe ich doch auch so gemacht !
Was ist denn nun bei Dir anders
Erstmal die Rückfrage: Gehts?^^
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
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
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,"
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
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 ?
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]
habe es nun so geändert das nur noch die id in der Variable ist
anbei mal wie ich die Variable von einem Formular zum anderen gebe
Dim stLinkCriteria As String
DoCmd.OpenForm "sel_takeoff", , , , acFormAdd, , Me!kunden
End Sub
Aber es passiert immer noch nichts oder habe ich wieder was übersehen?
Wo finde ich denn die Datei?
In meinem letzten Post. Ist relativ klein und zwischen Signatur und Antwort zu finden.
Also ich sehe nichts! Leider !
Ich wollte mich nun regestrieren und anmelden aber auch das klappt nicht. Echt kacke !!!
konnte mcih nun anmelden und habe es auch gefunden
funktioniert aber auch nicht ???
Klar^^ du wählst im ersten Formular nen Datensatz aus und im zweiten Formular wird dann im Listenfeld nur dieser Datensatz angezeigt.
Also ich bin zu blöd für Access. Bei mir funkioniert es nicht. Ich rufe das Formular auf und kann schon nichts eintragen. Da läuft ja schon was falsch.
also so teilweise bekomme ich es hin. Aber damit funktioniert mein Script leider noch nicht >:(
Also eigentlich ist es doch garnicht so schwer. Im ersten Formular klickst du dich duch die Datensätze und mit dem Button öffnet sich ein zweites Formular, in dem sich das Listenfeld befindet. In diesem Listenfeld würden normalerweise alle Einträge aus der Tabelle1 stehen. Aber da ich im Load-Event die Rowsource über die openargs anpasse, steht dort nur der Datensatz drinne, den man vorher im Formular ausgewählt hatte.
muß ich eigentlich bei der Erstellung des Listenfeldes bei Datensatzherkunft nicht eine eine where Bedingung hinmachen
du hast dies wie folgt:
SELECT [Tabelle1].[ID], [Tabelle1].[Feld1] FROM Tabelle1;
Nein brauchst du nicht, da du ja die Datensatzherkunft dann eh änderst.
lad doch mal deine Datenbank hoch, denn ich glaub ich hab nun so ziemlich jede Variante durch ^^
hier die material_DB
[Anhang gelöscht durch Administrator]
Und hier die Lösung
Du solltest aber nochmal im Beziehungsfenster die Beziehungen anlegen!
[Anhang gelöscht durch Administrator]
Morgen,
erst einmal vielen Dank fürdie Mühe mit mir !!!!!!
Aber ich bin keiner der sich nun auf dem Ding ausruht und sagt, es funktioniert, kümmere ich mich nicht mehr weiter drum. Kannst Du mir sagen, warum es nun geht bzw was bei meiner DB nicht korrekt war?
Hallo,
1: dein Variable "firmenid" die du mit den Openargs gefüllt hast hieß genauso, wie die Kriterienspalte in der Tabelle -> nicht gut
2: du hast einen string im WHERE Kriterium verwendet, obwohl du eine Zahl übergeben hast
3: du hattest deine Variable firmenid nicht dimensioniert
Ich hab folgendes gemacht: -Statement kürzer
-direkt Openargs genutzt, da hier eine extra variable sinnlos war
-Integerkriterium verwendet