[NEWSboard IBMi Forum]
  1. #1
    Registriert seit
    Dec 2003
    Beiträge
    17

    Question AS/400 UPDATE von Access über VBA

    Hallo allerseits,

    ich habe folgendes Problem:

    Mein System:
    - Access 2000
    - ODBC-Verbindung zu AS/400-DB
    - VBA
    - AS/400

    Eine Tabelle aus einer AS400-Bibliothek ist über ODBC-Verbindung in Access verknüpft.

    Ich versuche über Access Excel-Dateien Zeile für Zeile auszulesen und per ODBC die entsprechenden Datensätze in der AS/400-Tabelle (Verknüpfte ODBC-Tabelle) zu aktualisieren. Das ganze läuft über einen VBA-Code.

    Ein Ausschnitt des Codes:

    Code:
    For i = 10 To 13
        CurrentDb.Execute "UPDATE [tblBestellung] SET [tblBestellung].[Straße] ='" & Range("J" & i) & "' WHERE [BestellNr] =" & Range("A" & i) & "AND [Frachtkosten]=" & 1 & ";"
    Next i
    Es kommt immer zum Fehler 3073, die Meldung lautet ungefähr wie folgt:
    "Die Abfrage muss einen aktualisierbaren Teil haben" oder so ähnlich

    Woran kann es denn liegen?

    Kann mir jemand dabei helfen?

    Vielen vielen Dank vorab

    Viele Grüße

    Otto

  2. #2
    Registriert seit
    Feb 2001
    Beiträge
    20.696
    In der ODBC-Einstellung muss Commitment-Control abgeschaltet werden, wenn deine AS/400-Tabelle nicht journalisiert wird.
    Anschließend muss die Tabelle ggf. neu verknüpft bzw. die Verknüpfung aktualisiert werden.

    Als Alternative kann ich dir auch mein Excel-Addin "Uplaod400" anbieten (siehe hierzu meine Homepage).
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  3. #3
    Registriert seit
    Dec 2003
    Beiträge
    17
    Hallo,

    was heißt "journalisiert"? Ist es eine wichtige Funktion?

    Wie kann ich die ODBC-Verknüpfung per VBA aktualisieren??

    Der Code vom Upload400.xla ist schreibgeschützt?!?!?

    Danke nochmal

    Gruß

    Otto

  4. #4
    Registriert seit
    Feb 2001
    Beiträge
    20.696
    In der ODBC-Verwaltung für Client-Access Registerkarte "Server" dann "Erweitert" wird die Journalisierung definiert "Sofortiges Commit (*NONE)" ist dann einzustellen.

    Journalisierung ist in Access die Funktion "Transaktionssteuerung" die mit den Methoden "BeginTransaction" usw. durchgeführt wird. Dies stellt eine Möglichkeit dar, Datenbankänderungen konsistent zu halten, da zusammenhängende "Transaktionen" definiert werden.

    Auf der AS/400 gibt es die Möglichkeit auch, wird aber bei vielen Standardprodukten eher selten verwendet.

    Um per VBA eine ODBC-Verbindung einzustellen gibt es nur in DAO die Methode "RegisterDatabase" in der der Connection-String der Verbindung genau definiert werden muss.
    Der Befehl kann jederzeit verwendet werden, eine vorhandene ODBC-Konfiguration wird dadurch wiederhergestellt:

    Code:
        DAO.RegisterDatabase "MyDsn", _
                             "Client Access ODBC Driver (32-bit)", _
                             True, _
                             "DBQ=MyLib" & vbCr & _
                             "CONNTYPE=1" & vbCr & _
                             "TRANSLATE=1" & vbCr & _
                             "COMPRESSION=1" & vbCr & _
                             "SEARCHPATTERN=0" & vbCr & _
                             "XDYNAMIC=1" & vbCr & _
                             "LAZYCLOSE=0" & vbCr & _
                             "CMT=0" & vbCr & _
                             "DFTPKGLIB=QTEMP" & vbCr & _
                             "SYSTEM=MySystem" & vbCr
    Der Code von Upload400 ist natürlich schreibgeschützt schließlich möchte ich damt auch Geld verdienen.
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  5. #5
    Registriert seit
    Dec 2003
    Beiträge
    17

    Thumbs up Es hat funktioniert

    Hallo,

    vielen Dank für die Hilfe.

    In der ODBC-Verwaltung für Client-Access Registerkarte "Server" dann "Erweitert" wird die Journalisierung definiert "Sofortiges Commit (*NONE)" ist dann einzustellen.
    Das hat tatsächlich funktioniert. Ich habe "Sofortiges Commit (*NONE)" eingestellt und hat es schon funktioniert.

    Danke nochmal

    Gruß
    Otto

Similar Threads

  1. Kein Update via MS Access
    By Fubini in forum IBM i Hauptforum
    Antworten: 5
    Letzter Beitrag: 06-09-05, 14:11
  2. Anmeldung Access -> AS/400
    By mkguru in forum IBM i Hauptforum
    Antworten: 4
    Letzter Beitrag: 31-08-05, 08:23
  3. Client Access V4R5 auf Windows XP SP2 an AS/400
    By Hannibal2 in forum NEWSboard Windows
    Antworten: 3
    Letzter Beitrag: 21-01-05, 08:42
  4. datenzugriff access -> as/400
    By unknown123 in forum IBM i Hauptforum
    Antworten: 24
    Letzter Beitrag: 13-10-04, 13:05
  5. Zugriff MS Access auf AS/400 via ODBC
    By SL in forum IBM i Hauptforum
    Antworten: 2
    Letzter Beitrag: 22-07-02, 11:54

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • You may not post attachments
  • You may not edit your posts
  •