Supportnet / Forum / Datenbanken
neues in Access 2002
Frage
Hallo, ich habe da einen alten Code für Datenbankzugriffe. Dieser ist unter Access 97 geschrieben worden. Gab es da änderungen vom Syntak her zu Access 2002 ? ICh muss die Datenbank jetzt konvertieren, kann jedoch nicht den Code so in Access 2002 schreiben. Hat jemand vielleicht eine Quelle für mich oder kann mir sonst wie weiterhelfen ??
Der Code ist übrigens:
Public Function abcVerbrauch(vtxtabcwerk As String)
´ abcVerbrauch("10101010")
´ berechnet das ABC kennzeichen nach Verbrauch auf Werksebene
Dim dbs As Database, rst As Recordset, vtxtSQL As String
Dim vintzaehler As Integer, vdbkummuliert As Double, vdbGSumme As Double
Dim vdbProzent As Double, vtxtABCKZ As String
Dim mist As String
vtxtSQL = "SELECT ABCBUKWerk, VBW_01_12, VBM_01_12, ABCV FROM tblABCaktuell WHERE (((ABCBUKWerk) = "
vtxtSQL = vtxtSQL + "´" + vtxtabcwerk + "´"
vtxtSQL = vtxtSQL + "))ORDER BY VBW_01_12 DESC;"
Set dbs = CurrentDb
´Set rst = dbs.OpenRecordset("tblABCaktuell")
Set rst = dbs.OpenRecordset(vtxtSQL)
rst.MoveFirst
vdbkummuliert = 0
vintzaehler = 0
vdbGSumme = summenberechnung("VBW_01_12", "abcbuKwerk", vtxtabcwerk)
If vdbGSumme = 0 Then
With rst
Do While Not .EOF()
.Edit
!ABCV = "D"
.Update
.MoveNext
Loop
End With
rst.Close
Exit Function
End If
With rst
Do While Not .EOF()
vintzaehler = vintzaehler + 1 ´ normalerweise nicht benötigt
vdbkummuliert = vdbkummuliert + !VBW_01_12 ´ kummuliert verbrauchswert
vdbProzent = aufabrunden(vdbkummuliert / vdbGSumme * 100, 2)
´Einteilung in ABC
Select Case vdbProzent
Case Is <= 80 ´Or vintzaehler = 1 ´falls 1.pos größer 80% ausmacht
vtxtABCKZ = "A"
Case 80 To 95 ´And vintzaehler > 1
vtxtABCKZ = "B"
Case Is > 95
vtxtABCKZ = "C"
End Select
If !VBM_01_12 = 0 Then
vtxtABCKZ = "D"
End If
If !VBW_01_12 < 0 Then
vtxtABCKZ = "E"
End If
.Edit
!ABCV = vtxtABCKZ
.Update
´Debug.Print vtxtABCKZ, !vbw_01_12, vdbkummuliert, vdbProzent, vdbGSumme
.MoveNext
Loop
End With
rst.Close
End Function
Vielen Dank an alle Helfer !!
Antwort 1 von Teddy7
Ohne jetzt ins Detail einzusteigen: Der Code muß nach wie vor laufen.
Einzige relevante Änderung: es gibt jetzt 2 verschiedene Arten des Zugriffs auf Recordsets: DAO und ADO.
Die Zugriffsart unter A97 war DAO - also muß die Definition so geändert werden:
Dim dbs As DAO.Database, rst As DAO.Recordset,............usw........
Dazu den richtigen Verweis auf Microsoft DAO setzen und der Code müßte laufen.
Gruß
Teddy
Einzige relevante Änderung: es gibt jetzt 2 verschiedene Arten des Zugriffs auf Recordsets: DAO und ADO.
Die Zugriffsart unter A97 war DAO - also muß die Definition so geändert werden:
Dim dbs As DAO.Database, rst As DAO.Recordset,............usw........
Dazu den richtigen Verweis auf Microsoft DAO setzen und der Code müßte laufen.
Gruß
Teddy
Antwort 2 von SteffenV
Was genau meinst du mit auf Microsoft DAO setzen ?
ICh steh grad auf dem Schlauch. Im Code kommt das ja nicht wirklich vor...
Aber schonmal vieln Dank für den Beitrag !
ICh steh grad auf dem Schlauch. Im Code kommt das ja nicht wirklich vor...
Aber schonmal vieln Dank für den Beitrag !
Antwort 3 von SteffenV
Hab es verstanden, ich muss also bei Access 2002 im Code immer DAO.recordset usw schreiben richtig ?
Stimmt es das es unter Access 2003 wieder ohne die änderung gehen sollte ??
Danke für die Mühe
Steffen
Stimmt es das es unter Access 2003 wieder ohne die änderung gehen sollte ??
Danke für die Mühe
Steffen
Antwort 4 von Teddy7
nein !
Und die Verweise findest Du in Code-Fenster über Extras - Verweise.
Und die Verweise findest Du in Code-Fenster über Extras - Verweise.
Antwort 5 von SeffenV
Okay, ich habs jetzt geblickt, hatte nicht im Code-Fenster nach dem Verweise geschaut ! sorry!
Wenn ich jetzt von vorne herein auf ado programmieren will, gibts da einen andren Syntax ?
Ich werd mal recherchieren...
Falls du einen schnellen Tipp hast, wäre ich natürlich hoch erfreut !
Vielen Dank für die super Hilfe, hat mir schonmal viel geholfen
Steffen
Wenn ich jetzt von vorne herein auf ado programmieren will, gibts da einen andren Syntax ?
Ich werd mal recherchieren...
Falls du einen schnellen Tipp hast, wäre ich natürlich hoch erfreut !
Vielen Dank für die super Hilfe, hat mir schonmal viel geholfen
Steffen
Antwort 6 von Teddy7
Ich verwende grundsätzlich kein ADO
Antwort 7 von SteffenV
Warum denn nicht ?
ICh soll mich kundig machen, weil es ja durch die ganze .net Geschichte immer akueller und besser sein soll !
Stimmt das gar nicht ?
ICh soll jetzt einen kleinen Code schreiben, mit dem durch ado auf eine Tabelle zugegriffen wird.
Ich bin verzweifelt !!!!
ICh soll mich kundig machen, weil es ja durch die ganze .net Geschichte immer akueller und besser sein soll !
Stimmt das gar nicht ?
ICh soll jetzt einen kleinen Code schreiben, mit dem durch ado auf eine Tabelle zugegriffen wird.
Ich bin verzweifelt !!!!

