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, 6044 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 ..
Ähnliche Inhalte
Microsoft
gelöst Verbindung zu MS SQL Server 2016 nicht möglich (5)

Frage von Baitahook zum Thema Microsoft ...

Datenbanken
gelöst Daten aus Excel in MS SQL Server übernehmen (7)

Frage von Balu418xx zum Thema Datenbanken ...

Windows Server
gelöst Update BackupExec 2015 auf 2016 führt zu SQL-Server Problem (19)

Frage von montylein1981 zum Thema Windows Server ...

Windows Server
gelöst SQL Server 2008R2 Update über Windows Microsoft Updates wird nicht mehr angeboten (4)

Frage von TimSterntaler zum Thema Windows Server ...

Neue Wissensbeiträge
RedHat, CentOS, Fedora

Fedora, RedHat, Centos: DNS-Search Domain setzen

(2)

Tipp von Frank zum Thema RedHat, CentOS, Fedora ...

Drucker und Scanner

Samsung SL-M4025ND, firmware update und (kompatible) Tonerkassetten

(1)

Erfahrungsbericht von markus-1969 zum Thema Drucker und Scanner ...

Router & Routing

PfSense auf Supermicro Intel Xeon D-15x8 SoC Bare Bone

Tipp von Dobby zum Thema Router & Routing ...

Heiß diskutierte Inhalte
Windows 10
Windows für Privatanwender "nicht mehr handhabbar" (26)

Frage von FA-jka zum Thema Windows 10 ...

LAN, WAN, Wireless
Brauche Hilfe: Mit (schnellem) WLAN Strecke überbrücken (23)

Frage von pierrehansen zum Thema LAN, WAN, Wireless ...

Basic
Programmierung von Windows Programmen (10)

Frage von Ghost108 zum Thema Basic ...