WCM Forum

WCM Forum (http://www.wcm.at/forum/index.php)
-   Programmierung (http://www.wcm.at/forum/forumdisplay.php?f=17)
-   -   daten aus excel nach access (mdb) exportieren (http://www.wcm.at/forum/showthread.php?t=138566)

Chrisi99 05.07.2004 13:44

hm, der code reicht ihm wieder nicht :(

Laufzeitfehler "Für mindestens einen erforderlichen Parameter wurde kein Wert übergeben"

bei: rst.Open strSQL, cnn

wbendl 05.07.2004 14:19

Dann hat du einen Fehler im SQL-Statement. Falscher Feldname z. B.

Das Beispiel funktioniert unter Excel 2002

Ich verabschiede mich jetz bis morgen Abend.

mfg

WB

Chrisi99 05.07.2004 14:26

Zitat:

Original geschrieben von wbendl
Dann hat du einen Fehler im SQL-Statement. Falscher Feldname z. B.

Das Beispiel funktioniert unter Excel 2002

Ich verabschiede mich jetz bis morgen Abend.

mfg

WB

habs zum laufen gebracht :)

jetzt beibt nur eine Frage: kann man der where-klausel eine Variabe übergeben (und vor allem wie )

mfg

renew 05.07.2004 15:30

Zitat:

Original geschrieben von Chrisi99
habs zum laufen gebracht :)

jetzt beibt nur eine Frage: kann man der where-klausel eine Variabe übergeben (und vor allem wie )

mfg

natürlich!

Du musst dir einfach den Abfrage String zusammenbasteln - in deinem Fall dann so:

sql1 = "SELECT Tabelle1.PNR, Tabelle1.NAME, Tabelle1.VNAM, Tabelle1.KST FROM Tabelle1 WHERE (((Tabelle1.PNR)= " & Variable & "))"

Chrisi99 06.07.2004 10:55

Zitat:

Original geschrieben von LLR
natürlich!

Du musst dir einfach den Abfrage String zusammenbasteln - in deinem Fall dann so:

sql1 = "SELECT Tabelle1.PNR, Tabelle1.NAME, Tabelle1.VNAM, Tabelle1.KST FROM Tabelle1 WHERE (((Tabelle1.PNR)= " & Variable & "))"

leider kann ich bei dieser variante keine Wildcards (*) benutzen, scheinbar hat
Set rc1 = db.OpenRecordset(sql1)
Proleme damit (Syntaxfehler, fehlender Operator)

eine Idee?

mfg

renew 06.07.2004 15:11

Wie Wildcards? Was hatn Tabelle1.PNR für einen Datentyp? String?
Und bei dem willst Wildcards benutzen - oder? (ich rate mal, falls es anders ist, schreib einfach ;))

Also wenn ich mit meiner Annahme recht haebn, dann sollte die Abfrage so ausschaun:

sql1 = "SELECT Tabelle1.PNR, Tabelle1.NAME, Tabelle1.VNAM, Tabelle1.KST FROM Tabelle1 WHERE (((Tabelle1.PNR) LIKE '*" & Variable & "*'))"

Chrisi99 06.07.2004 15:49

Zitat:

Original geschrieben von LLR
Wie Wildcards? Was hatn Tabelle1.PNR für einen Datentyp? String?
Und bei dem willst Wildcards benutzen - oder? (ich rate mal, falls es anders ist, schreib einfach ;))

Also wenn ich mit meiner Annahme recht haebn, dann sollte die Abfrage so ausschaun:

sql1 = "SELECT Tabelle1.PNR, Tabelle1.NAME, Tabelle1.VNAM, Tabelle1.KST FROM Tabelle1 WHERE (((Tabelle1.PNR) LIKE '*" & Variable & "*'))"

nein , es sind mitarbeitsnummern und da möchte ich mir alle Mitarbeiter anzeigen lassen (oder geht von-bis ?? das wäre natürlich am praktischten :) )

mfg

wbendl 06.07.2004 18:46

Hi!

Jetzt bin ich wieder in Amt und würden.

Wenn du alle DS willst, brauchst du eigentlich keine WHERE-Klausel

Alle DS:
sql1 = "SELECT PNR, NAME, VNAM, KST FROM Tabelle1"

Ein DS
sql1 = "SELECT PNR, NAME, VNAM, KST FROM Tabelle1 WHERE PNR = " & NumerischeVariable

DS aus einem bestimmten Bereich:
sql1 = "SELECT PNR, NAME, VNAM, KST FROM Tabelle1 WHERE PNR BETWEEN " & NumerischeVariable1 & " AND " & NumerischeVariable2

Noch ein Hinweis:
Wenn in der WHERE-Klausel eine Variable vom Typ String verwendet wird, muß sie in einfache Hochkommas (') gesetzt werden.

mfg

WB

Chrisi99 07.07.2004 07:33

ich habe jetzt zum ändern folgenden (praktischen ) code
Code:

Sub ändern()

Dim oAcc As New Access.Application
oAcc.OpenCurrentDatabase ("J:\PROJEKT\PIS\test\test.mdb")
oAcc.Visible = False 'fürs entwickeln angenehm
Dim db As DAO.Database
Dim rs As DAO.Recordset


Set db = oAcc.CurrentDb
Set rs = db.OpenRecordset("Autos", dbOpenDynaset)


    'einen Datensatz suchen
    rs.FindFirst "PNR=" & var & ""
    If rs.NoMatch Then
    'Nix gefunden
    Else
    'Datensatz ändern
    rs.Edit
    rs!Marke = car
    rs.Update
    End If
    rs.Close
    Set db = Nothing

[gekürzt]

kann ich dieses Konstrukt auch zum Auslesen verwenden? (damit ich ein einheitliches System habe)?

so gaaaanz langsam bekomm ich einen Plan von der Geschichte... aber nur langsam :D

mfg

wbendl 07.07.2004 08:55

Hi!

Bei dieser Version startest Access. Das ist aber unnötiger Aufwand.

Ich würde dir empfehlen, auch hier die ADO-Variante zu verwenden.
Ist einfacher.

Du mußt nur einen Cursor angeben, der das editieren der Daten erlaubt.

Einen einzelnen DS gleich im SQL-Statement auswählen.
Für mehrere DS die WHERE-Klausel weglassen, und das Recordset filtern.

mfg

WB


Alle Zeitangaben in WEZ +2. Es ist jetzt 23:19 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
© 2009 FSL Verlag