Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Update Befehl via MS Access auf SQL Server

Frage Entwicklung Datenbanken

Mitglied: freshToto

freshToto (Level 1) - Jetzt verbinden

13.04.2010 um 10:02 Uhr, 5931 Aufrufe, 3 Kommentare

Hallo zusammen,
ich versuche gerade mit Hilfe von MS Access eine Tabelle auf einem SQL Server zu aktualisieren.

Also die Ausgangslage ist folgende:
Ich habe eine Excel Tabelle mit einträgen und zwei Spalten in denen diese Einträge klassifiziert werden. Auf meinem SQL Server gibt es ebenfalls zwei Tabellen. In der einen stehen die Werte die auch
in der Excel Tabelle vorhanden sind und in der zweiten sind die Felder vorhanden in die die Klassifizierungen eingetragen werden sollen. Das dies in zwei verschiedenen Tabellen steht ist vom System so vorgegeben und lässt sich nicht ändern.
Nun möchte ich mit Hilfe von MS Access die Werte in der SQL Datenbank mit den Klassifizierungswerten aus der Excel Tabelle aktualisieren.

Habe bereits eine Join Abfrage gemacht in die mir die Werte aus Excel Tabelle und SQL DB zusammengeführt anzeigt.
Hier meine Abfrage:

SELECT [ABC Kategorisierung].*, dbo_AccountBase.*
FROM ([ABC Kategorisierung] INNER JOIN dbo_AccountBase ON [ABC Kategorisierung].Firmenname = dbo_AccountBase.Name) INNER JOIN dbo_AccountExtensionBase ON dbo_AccountBase.AccountId = dbo_AccountExtensionBase.AccountId;

Jetzt habe ich versucht diese Abfrage so zu erweitern das ein Update Befehl daraus wird und die Kategorisierungsfelder in der Tabelle AccountExtensionBase auf dem SQL Server mit den Werten aus der Excel Tabelle gefüllt werden.

UPDATE dbo_AccountBase.AccountExtensionBase
SET new_klassifizierungcons = [ABC Kategorisierung].Klassifikation Cons, new_klassifizierungrec = [ABC Kategorisierung].Klassifikation Rec
SELECT [ABC Kategorisierung].*, dbo_AccountBase.* AS Data
FROM dbo_AccountExtensionBase INNER JOIN ([ABC Kategorisierung] INNER JOIN dbo_AccountBase ON [ABC Kategorisierung].Firmenname=dbo_AccountBase.Name) ON dbo_AccountExtensionBase.AccountId=dbo_AccountBase.AccountId;

Bei dieser Abfrage bekomme ich einen Syntaxfehler. Weiß jemand wo der Fehler liegen könnte bzw. ist es überhaupt möglich das auf diese Weise zu lösen??

Bin für Tipps und Anregungen dankbar

Grüße
freshToto
Mitglied: freshToto
13.04.2010 um 10:44 Uhr
Sorry vergesst den Update Befehl den ich gepostet habe!
Der ist totaler Mist so kann das nicht funktionieren.

Ich glaube der Ansatz ist besser...

UPDATE dbo_AccountExtensionBase
SET new_klassifizierungcons = [ABC Kategorisierung Firmen].Klassifikation Consulting, new_klassifizierungrec = [ABC Kategorisierung Firmen].Klassifikation Recruiting
WHERE dbo_AccountExtensionBase.AccountId = ...

Jetzt hakt es irgendwie nur an der WHERE Klausel. Kann ich da irgendwie den Join Befehl rein packen??
Bitte warten ..
Mitglied: freshToto
13.04.2010 um 13:35 Uhr
nochmal ein Update!
habe die Abfrage die ich bereits gepostet habe unter "Datenabfrage" gespeichert. Auf diese greife ich nun in meiner Where Klausel zu.

UPDATE dbo_AccountExtensionBase SET dbo_AccountExtensionBase.New_klassifizierungcons = Datenabfrage.[Klassifikation Consulting], dbo_AccountExtensionBase.New_klassifizierungrec = Datenabfrage.[Klassifikation Recruiting]
WHERE (((dbo_AccountExtensionBase.AccountId)=[Datenabfrage].[AccountId]));

Leider bekomme ich immer noch nicht das gewünschte Ergebnis. Hat vielleicht jemand eine Idee?
Bekomme nur Popups in denen nach Parametern für folgende Werte gefragt wird:
Datenabfrage.Klassifikation Consulting
Datenabfrage.Klassifikation Recruiting
Datenabfrage.AccountId

Hat jemand ne Idee was das zu heisen hat??

Gruß
Bitte warten ..
Mitglied: Biber
15.04.2010 um 20:27 Uhr
Moin freshtoto,

der Fehler hat wahrscheinlich mehrere Ursachen - einige davon verursacht im fernen Redmond, ein durchaus nennenswerter Anteil aber vermutlich in einer Gegend, die selbst für mich mit dem Fahrrad erreichbar wäre

Ich will mal so sagen....
WENN es dir denn nicht auszureden wäre, die beiden Felder [Klassifikation Recruiting] und [Klassifikation Consulting] nun redundant auch noch in der Tabelle "AccountExtensionBase" abzulegen, was ich mit keiner mir bekannten Normalform auch nur ansatzweise in Einklang bringen kann
DANN wäre der Weg dahin:
  • Reduziere die Rückgabe-Felder der "Datenabfrage"-Query auf die drei, die du beim UPDATE benötigst (AccountID, [Klassifikation Recruiting], [Klassifikation Recruiting])
  • und ja, "nur diese drei" bedeutet, dass du das leichtfüßige "SELECT [ABC Kategorisierung].*, dbo_AccountBase.*" nicht mehr verwendest. Nix Sternchen.
  • und weiterhin, dass die beiden Felder [Klassifikation Recruiting] und [Klassifikation Recruiting] in Zukunft aus einer (per Alias konkretisierten) Tabelle kommen und nicht "irgendwo im Resultset dabei sind"
  • und, ganz wichtig, dass die unter einem neuen Namen kommen, der keine Leerzeichen mehr enthält (Z.B. "...SELECT ...AccountBase.[Klassifikation Recruiting] as KlassRec, .." etc.

Mit der Kombination von "Feldnamen mit Leerzeichen" (erzwingen eckige Klammern) UND SubSelects in Abfragen kommt Access nicht klar

Aber wie geschrieben.... alles rein hypothetisch ....unter der Bedingung "WENN es denn nötig wäre"

Nach dem, was von deinem Datenmodell zu erkennen ist, ist es NICHT sinnvoll.
Die upzudatende Tabelle wird ubgedatet mit einer Abfrage über drei Tabellen, von denen sie selbst eine ist.

(Das muss jeder dreimal lesen... der Access-SQL-Parser aber auch. Das kann und darf nicht sein...)

Poste doch einmal die Relationen und Entitäten der drei genannten Tabellen (nicht der Excel-Quellen, sondern der angelegten MDB-Tabellen).

Da ist was aus dem Ruder gelaufen.

Grüße
Biber
Bitte warten ..
Neuester Wissensbeitrag
Humor (lol)

Linkliste für Adventskalender

(3)

Information von nikoatit zum Thema Humor (lol) ...

Ähnliche Inhalte
Datenbanken
MS-SQL-Server + T-SQL+Batch (4)

Frage von kallewirsch zum Thema Datenbanken ...

Datenbanken
gelöst Empfehlung für Festplatten-Konfiguration bei MS SQL Server (3)

Frage von BeSt zum Thema Datenbanken ...

Heiß diskutierte Inhalte
Windows Server
DHCP Server switchen (25)

Frage von M.Marz zum Thema Windows Server ...

SAN, NAS, DAS
gelöst HP-Proliant Microserver Betriebssystem (14)

Frage von Yannosch zum Thema SAN, NAS, DAS ...

Grafikkarten & Monitore
Win 10 Grafikkarte Crash von Software? (13)

Frage von Marabunta zum Thema Grafikkarten & Monitore ...

Windows 7
Verteillösung für IT-Raum benötigt (12)

Frage von TheM-Man zum Thema Windows 7 ...