tutorials.de Buch-Aktion 05/2012
ERLEDIGT
JA
ANTWORTEN
2
ZUGRIFFE
1746
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    ash_ol ash_ol ist offline Rookie
    Registriert seit
    Apr 2010
    Beiträge
    6
    hi leute,

    ich bin immer noch dabei meine Bestandsdatenbank mit Visual C# 2010 Beta programmieren und steht vor einem weiteren Problem, bei dem mir auch keiner der Hieranwesenden oder Google helfen konnten.

    und zwar habe ich eine MS Access Datenbank mit 2 Tabellen

    TSMB und TLDB

    In beiden Tabellen stehen fast gleiche Spalten, relevant für mein Problem sind die Spalten VOLUME_NAME und VOLTYPE.
    Die TLDB-Tabelle ist die Tabelle aus der ich lese, bzw auch nur lesen kann, weils ein nicht-standardisierter ODBC-Treiber ist, der da die Verbindung zur Datenbank aufrecht erhält.

    Aus jeden Fall muss ich bei einem bestimmten Event den VOLTYPE eines bestimmten Volumes aus der TLDB in die TSMB-Tabelle schreiben, nur will mir das leider nicht so gelingen.
    Ich habe bereits gefühlte 100 verschiedene Update Befehle eingegeben aber nichts hat funktioniert.

    Einige Versuche waren:

    Code sql:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    
    UPDATE TSMB 
    SET VOLTYPE 
    (SELECT TLDB.VOLTYPE FROM TLDB WHERE TSMB.VOLUME_NAME = TLDB.VOLUME_NAME)
     
    UPDATE TSMB SET VOL_TYPE = TLDB.VOLTYPE
     WHERE TSMB.VOLUME_NAME = TLDB.VOLUME_NAME
     
    INSERT INTO TSMB (VOL_TYPE) 
    SELECT TLDB.VOLTYPE FROM TLDB WHERE TSMB.VOLUME_NAME = TLDB.VOLUME_NAME

    Das ganze mit Klammern ohne Klammern, mit zusätzlichen WHERE-Klauseln, aber immer krieg ich die Fehlermeldung:
    Operation muss eine aktualisierbare Abfrage verwenden oder
    Für mindestens einen erforderlichen Parameter wurde kein Wert angegeben.

    Wie ihr sehr hab ich auch schon versucht einfach die ganze Spalte VOLTYPE aus TSMB zu updaten aber das funktioniert auch nicht.
    Ich bin so gut wie fertig damit, aber das is echt ein wichtiger Wert, der auf keinen Fall in der Bestandsführung fehlen darf, da es um Magnetbänder für Datensicherungen geht. Hoffentlich könnt ihr mir vielleicht dabei helfen. Danke im Vorraus.
    Geändert von ash_ol (15.04.10 um 16:24 Uhr)
     

  2. #2
    gorefest gorefest ist offline Mitglied Brokat
    Registriert seit
    Apr 2009
    Beiträge
    256
    Code sql:
    1
    2
    3
    
    UPDATE TSMB 
    SET VOLTYPE =
    (SELECT TLDB.VOLTYPE FROM TLDB WHERE TSMB.VOLUME_NAME = TLDB.VOLUME_NAME)

    ... sollte auch Access machen, sofern die Joinklausel genau einen record liefern.

    Ansonsten kann man auch mit INNER JOIN updaten.

    Code sql:
    1
    2
    3
    4
    
    UPDATE TSMB 
     INNER JOIN TLDB 
     SET TSMB.VOLTYPE =TLDB.VOLTYPE 
    WHERE TSMB.VOLUME_NAME = TLDB.VOLUME_NAME

    Grüße
    gore
     

  3. #3
    ash_ol ash_ol ist offline Rookie
    Registriert seit
    Apr 2010
    Beiträge
    6
     

Ähnliche Themen

  1. UPDATE funktioniert nicht
    Von Voltex im Forum PHP
    Antworten: 7
    Letzter Beitrag: 23.01.09, 17:50
  2. sql = 'UPDATE Funktioniert nicht
    Von cris-the-best im Forum PHP
    Antworten: 3
    Letzter Beitrag: 11.10.07, 10:45
  3. SQL UPDATE funktioniert nicht
    Von Iceman8712 im Forum Relationale Datenbanksysteme
    Antworten: 8
    Letzter Beitrag: 30.01.07, 14:40
  4. Access 2000 und UPDATE mit subselect
    Von cika_miso im Forum Relationale Datenbanksysteme
    Antworten: 2
    Letzter Beitrag: 22.03.04, 13:12
  5. SQL // Access'97 // Subselect mit Update
    Von supersmu im Forum Relationale Datenbanksysteme
    Antworten: 1
    Letzter Beitrag: 10.12.03, 12:57

Stichworte