online 1
gast (50)

/ Forum / Datenbanken

DatenbankenDatenbanken

Fragevon ichhabeinefrage vom 02.08.2019, 12:32 Options

SQL Variablen zuweisung

Hi, ich bins mal wieder :)
ich mache mit einen SQL befehl eine Abfrage und das Ergebnis möchte ich in einer Variable speichern (intVariable)
Der SQL befehl wäre ungefähr so:
"SELECT rate FROM tblWertetabelle WHERE Time = " & cboDatum.Value & " And curreny = " & cboWaehrung.Value)

Wie speicher ich dies nun in VBA in einer Variable?
Und wie führ ich den SQL befehl in VBA aus?
Danke für jegliche Hilfe


Antwort schreiben

Antwort 1 von Coolpix vom 02.08.2019, 13:06 Options

hallo,

soweit ich weiss kannst du einer Variablen kein Ergebnis einer Abfrage zuweisen...

ich würde das mit dem Domänenaggregat "Dlookup" tun:


intVariable = DLookup ("[Hausnummer]", "[tblWertetabelle]", "[Time] = " & cboDatum.Value  & " AND [curreny] = " & cboWaehrung.Value )


wenn du ein SQL-Statement in vba ausführen willst, geht das über


DoCmd.RunSQL "SELECT rate FROM tblWertetabelle WHERE Time = " & cboDatum.Value & " And curreny = " & cboWaehrung.Value) ;"



Greetings ;-)

Antwort 2 von ichhabeinefrage vom 02.08.2019, 14:00 Options

Ok, danke schon mal für die Hilfe, aber ich versteh den Code noch nicht so ganz.

Wieso steht da im Code Hausnummer?

Eigentlich soll er mir in der intvariable, den rate-wert ausgeben den er in der selben Zeile wie den ausgewählent time und currency daten findet.

z.B time = 2.8.007 und currency USD
in der rate spalte würde dann daneben 1.3 stehen
jetzt soll er mir 1.3 speichern.

veständlich?

THX

Antwort 3 von son_quatsch vom 02.08.2019, 14:25 Options

Dazu musst Du die ADO (Microsoft ActiveX Data Objects) verwenden (Menüpunkt "Verweise" und selbiges dort selektieren).

Da eine SQL-Abfrage 0, einen oder mehrere Datensätze mit einer oder mehreren Spalten zurückgeben kann, wäre die Zuweisung an eine Variable absolut untauglich. Folgendes Beispiel hilft Dir hoffentlich weiter:

  Dim rs As ADODB.Recordset
  Dim conDB As ADODB.Connection
  Dim iAnzahl as integer
  Dim sLetzter as string

  Set conDB = New ADODB.Connection
  conDB.ConnectionString = "Driver={Oracle in instantclient10_2};" _
                         & "Provider=MSDAORA;" _
                         & "Password=xxxPassworTxxx;" _
                         & "User ID=xxxLoginnamExxx;" _
                         & "Data Source=xxxDatenbanknamExxx"
  conDB.Open
  conDB.BeginTrans

  Set rs = New ADODB.Recordset
  rs.Open "SELECT spalte1, spalte2 FROM tabell1", conDB, adOpenForwardOnly, adLockReadOnly, adCmdText

  iAnzahl
  Do While Not rs.EOF  ' jeden Datensatz durchlaufen
    iAnzahl = iAnzahl + 1

    debug.print "Ergebniszeile #" & iAnzahl & ": "
    debug.print rs.Fields("spalte1")
    debug.print rs.Fields("spalte2")

    sLetzter = rs.Fields("spalte2")
      
    rs.MoveNext
  Loop

  debug.print "Letzter Wert der letzten Zeile war: " & sLetzter
  
  conDB.RollbackTrans
  conDB.Close

Antwort 4 von ichhabeinefrage vom 02.08.2019, 14:37 Options

durch änderung von paar sachen, hab ich das doch hinbekommen mit deiner ersten Antwort.
Doch jetzt besteht folgendes Problem:
Datentyp in Kriterienausdruck unverträglich.
Das könnte daran liegen, das ich eine Datei als Datum abfragen will, die wohl aber als text gespeichert ist.
Kann ich irgendwie Test in Datum umwandeln?
Der Text ist schon so: 01.12.2004

Antwort 5 von son_quatsch vom 02.08.2019, 15:44 Options

...WHERE to_char(Time, 'DD.MM.YYYY') = ...

Antwort 6 von ichhabeinefrage vom 03.08.2019, 09:35 Options

Ich weiß nicht, wo der Fehler liegt.
Ich habe jetzt folgenden Code:
dblValue = DLookup("[Rate]", "tbl_001_Valuetable", " [Date_DDMMYYYY] = '" & Me.txtDate.Value & "' AND [Currency] = '" & Me.cboCurrency.Value & "'")
(Alles hintereinander)

Und eine Tabelle (tbl_001_Valuetable) mit den Spalten Date_DDMMYYYY( als Datum), Currency (als Text) und Rate( als Double).

Wenn ich diesen Code ausführe kommt folgender Fehler:
Laufzeitfehler '3464':
Datentypen in Kriterienausdruck unverträglich.

Wenn ich in der Tabelle Date_DDMMYYYY als Text speicher funktioniert der Code, leider brauche ich Date_DDMMYYYY aber als Datum.

Ich hab auch schon versucht, dass mit Variablen zu Umgehen, was aber nicht geklappt hat.


Brauche Hilfe -.-

Ähnliche Themen

kommentare in sql datenbank
soad  04.01.2007 - 120 Hits -

mysql update prob
Fabi15  17.01.2007 - 97 Hits - 3 Antworten

MSN-Zuweisung beim T-Sinus 410s
SusanneBln  14.02.2007 - 113 Hits - 2 Antworten

sql laufwerk
micky01  21.02.2007 - 110 Hits -

Gesucht, Programm für Datenbank Modelierung
Dr.Ma-Busen  02.06.2008 - 102 Hits - 2 Antworten

Hinweis

Diese Frage ist schon etwas älter, Sie können daher nicht mehr auf sie antworten. Sollte Ihre Frage noch nicht gelöst sein, stellen Sie einfach eine neue Frage im Forum..

Neue Einträge

Version: supportware 1.9.150 / 10.06.2022, Startzeit:Thu Jan 8 21:07:44 2026