Datensatz löschen in eigenen Tabelle

Dieses Thema im Forum "AddIns" wurde erstellt von Chr. Nordiek, 23. Januar 2018.

  1. Chr. Nordiek

    Chr. Nordiek Mitglied

    Hi,

    ich bin gerade dabei ein älteres AddIn auf eine OfficeLine 2016 zu bringen. Da bei stoße ich auf eine Code-Stelle in der Datensätze aus einer Tabelle in der Mandantendatenbank gelöscht werden.
    Dies schlägt fehl, da die Tabelle nicht in der accdb verlinkt ist.

    Gibt es irgendeine Möglichkeit aus einem AddIn heraus ein SQL-Statement in der Mandantendatenbank auszuführen?

    Ich habe auch schon versucht, per gsSptPrepare eine temporäre Abfrage auf die Tabelle zu erstellen. Doch wenn ich versuche ein Delete auf diese Abfrage auszuführen, kommt die Fehlermeldung: "Löschen aus angegebenen Tabellen nicht möglich".
     
  2. esc_hein

    esc_hein Mitglied Mitglieder

    Hallo,

    Code:
    goMandant.oData.Execute
    sollte funktionieren
     
  3. Chr. Nordiek

    Chr. Nordiek Mitglied

    Habe gerade folgendes getestet:

    sQry = "delete from amxAdresseDomains where Mandant=" & gnManId & " "
    sQry = sQry & " and Adresse=" & lAdresse

    goMandant.oData.Execute (sQry)

    Es kommt folgende Fehlermeldung:
    Es ist ein Fehler bei der Ausführung eines Commands aufgetreten.
    Fehler: Das Microsoft Access-Datenbankmodul findet die Eingabetabelle oder Abfrage 'amxAdresseDomains' nicht. Stellen Sie sicher, dass sie vorhanden ist und der Name richtig eingegeben wurde.
    CommandText: delete from amxAdresseDomains where Mandant=1 and Adresse=782257
    Device: Name=OLXXXXX; ServerType=MsSql110; ServerName=XXXXX\sageol2012; DatabaseName=OLXXXXX; Connection=AdoComConnection​

    Die Tabelle amxAdresseDomains ist in der Mandanten-Datenbank vorhanden.

    Die direkte Ausführung des Statements im Management Studio funktioniert.
     
  4. esc_hein

    esc_hein Mitglied Mitglieder

    Funktioniert denn das Öffnen eines Recordsets?
    Code:
    Dim rs As GenericRecordset
         Set rs = goMandant.oData.OpenGenericRecordset(sQry)
     
  5. Chr. Nordiek

    Chr. Nordiek Mitglied

    Ja das funktioniert.
    Damit kann ich auch auf unsere Tabelle zugreifen.
     
  6. esc_hein

    esc_hein Mitglied Mitglieder

    kann ich mir nicht erklären woran es da hapert
    Vielleicht noch mal prüfen welche Berechtigungen auf der Tabelle sind oder ob ein Primärschlüssel existiert.

    bei #3 wundert es mich, das in der Meldung MS Access steht
     
  7. Chr. Nordiek

    Chr. Nordiek Mitglied

    Ich habe das Problem gelöst.
    In dem Codeblock gab es ein Transaction-Handling. Bei der Übernahme des Codes habe ich festgestellt, dass die Methode BeginTransaction einen neuen Parameter hat. Ich habe erst True übergeben. Nachdem ich den auf False geändert habe funktioniert das jetzt.
    Bin leider viel zu spät auf die Idee gekommen, dass das damit zu tun haben könnte.
     

Diese Seite empfehlen