Top-Themen

Aktuelle Themen (A bis Z)

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

Mitglied: freshToto

freshToto (Level 1) - Jetzt verbinden

13.04.2010 um 10:02 Uhr, 6337 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
Datenbanken
MS Access Datenbank
gelöst Frage von endadaDatenbanken18 Kommentare

Hey alle zusammen, ich habe folgendes Problem: Ich versuche eine Datenbank mit Access zu erstellen, die wie im Screenshot ...

Windows Tools
MS SQL Instanz
Frage von sebastian2608Windows Tools6 Kommentare

N´ Abend Leute, heute habe ich einen besonders seltsamen Fall für euch ;) Folgende Grundsituation: Ein Bekannter hatte bis ...

Datenbanken

MS Access - SQL Datenbank - Alle SPalten werden mit GELÖSCHT angezeigt

Frage von harald.schmidtDatenbanken1 Kommentar

Hallo Leute. Ich habe folgendes Problem: - SQL Server 2016 - eine db - paar tabellen - greifen darauf ...

Datenbanken

SQL Update-Befehl mit Zeichenketten

gelöst Frage von TlBERlUSDatenbanken6 Kommentare

Hi, mein SQL ist etwas eingerostet und finde dazu nichts hilfreiches im Web. SQL-Server 2008 R2; Ist-Zustand: Datenbank-Spalte mit ...

Neue Wissensbeiträge
Windows 7
Updategängelung auf Windows 10, die zweite
Information von Penny.Cilin vor 15 StundenWindows 7

Hallo, da Windows 7 im kommenden Jahr nicht mehr supportet wird, werden Nutzer von Window 7 home premium wieder ...

Internet
EU-Urheberrechtsreform: Zusammenfassung
Information von Frank vor 2 TagenInternet1 Kommentar

Auf golem.de gibt es eine Analyse von Friedhelm Greis, der das Thema EU-Urheberrechtsreform gut und strukturiert zusammenfasst. Zwar haben ...

Microsoft Office

Office365 Schwachstellen bei Sicherheit und Datenschutz

Information von Penny.Cilin vor 3 TagenMicrosoft Office7 Kommentare

Auf Heise+ gibt es einen Artikel bzgl. Office365 Schwachstellen. Das ist noch ein Grund mehr seine Daten nicht in ...

Sicherheit
Schwachstellen in VPN Clients
Tipp von transocean vor 5 TagenSicherheit2 Kommentare

Moin, es gibt Sicherheitslücken bei VPN Clients namhafter Hersteller, wie man hier lesen kann. Gruß Uwe

Heiß diskutierte Inhalte
Hyper-V
Chaosbeseitigung in Domainlandschaft
Frage von Rolf935Hyper-V10 Kommentare

Hallo zusammen, ich hätte gerne mal ein paar praktische Tipps oder Hinweise. Derzeit haben wir einen NAS als Fileserver ...

Entwicklung
Programmieren lernen - Vorkenntnisse bisher nur in PowerShell
gelöst Frage von SomebodyToLoveEntwicklung10 Kommentare

Hallo zusammen, ich würde gerne tiefer in das Programmieren einsteigen, der Wunsch hängt mir schon im Kopf seid ich ...

Notebook & Zubehör
Hardware defekt ?
Frage von mausemuckelNotebook & Zubehör9 Kommentare

Hallo und ein schönes Osterfest an alle. Ich benötige mal euer Schwarm wissen. Ich habe hier ein Notebook Lenovo ...

VB for Applications
Makro für Word: überflüssige Leerzeichen und Absätze entfernen
gelöst Frage von MrRoyalVB for Applications9 Kommentare

Hallo zusammen, ich bin auf der Suche nach einem Makro (vielleicht kann Word das auch schon so) mit dem ...