Microsoft Excel

Herbers Excel/VBA-Archiv

SQL ??

Betrifft: SQL ?? von: Juergen
Geschrieben am: 23.08.2004 22:39:37

Hallo Leute!

Vielleicht hat jemand 2-3min. Ich lese mit dem unteren Modul eine Access MDB aus suche nach Rechnungsnummer und füge das gefunde in Variablen ein. Meine Frage.... geht das auch einfacher mit einem SQL-Statment geht vielleicht schon vom Prinzip einfacher (also mit weniger Zeilen) und...wenn mit SQL was für einen Verweis muß ich neben DAO noch setzten.

DANKE!!!!

Gruß Jürgen

Sub dblesen()
  Dim wrkJet As Workspace
   Dim wrkODBC As Workspace
   Dim dbsrech As Database
   Dim rs As Recordset
  

   Set wrkJet = CreateWorkspace("", "Admin", "", dbUseJet)
   Set wrkODBC = CreateWorkspace("", "Admin", "", dbUseODBC)
   Set dbsrech = wrkJet.OpenDatabase("c:\fibu2005\db.mdb")

 Set rs = dbsrech.OpenRecordset("Tabelle1", dbOpenDynaset)
i = 1
Do Until rs.EOF

If rechnr <> rs![rechnr] Then GoTo 10
kdnr = rs![kdnr]
ukdnr = rs![ukdnr]
posten1(i) = rs![po1]
posten2(i) = rs![po2]
posten3(i) = rs![po3]
posten4(i) = rs![po4]
posten5(i) = rs![po5]
posten6(i) = rs![po6]
posten7(i) = rs![po7]
posten8(i) = rs![po8]
da1 = rs![datum]
lsdatum = rs![lsdatum]
i = i + 1
10
rs.MoveNext
Loop
po = i

   rs.Close
   dbsrech.Close
   wrkJet.Close
   wrkODBC.Close

rechholen3

End Sub

  


Betrifft: AW: SQL ?? von: andre
Geschrieben am: 24.08.2004 05:42:21

Hallo Jürgen,
mit SQL wird nichts einfacher, Du kannst damit nur das zurückgegebene recordset einschränken.
Deinen code machst Du kürzer, wenn Du ein 2d-Array nimmst posten(1 to 8, 1 to xxx) oder posten(7, xxx).
Das Array dimensionierst Du wohl in einem anderen code? Einzeln läuft Dein Sub ohne Dim posten... nicht.


  


Betrifft: AW: SQL ?? von: Juergen
Geschrieben am: 24.08.2004 08:16:55

Hallo Andre!

Jau. die DIMs sind Public schon bei starten.
Aber wenn es dann auch nicht kürzer wird dann brauche ich mir über SQL ja keinen Kopf machen.
DANKE!!!

Gruß Jürgen