Supportnet Computer
Planet of Tech

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

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 !

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

Antwort 4 von Teddy7

nein !
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

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 möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: