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

Frage Entwicklung Datenbanken

Mitglied: freshToto

freshToto (Level 1) - Jetzt verbinden

13.04.2010 um 10:02 Uhr, 6174 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
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 ...

Datenbanken
MS SQL Server 2012 Update-Trigger
Tipp von EUuserDatenbanken

Hier ein kleiner Tipp, wie man Timestamps und Usernamen für Updates an Datensätzen anhängen kann. (Vielen Dank an ) ...

Microsoft Office
MS Access summe-Befehl in Formularen funktioniert nicht auf allen Rechnern
Frage von greatmgmMicrosoft Office

Hallo zusammen, der tt sagt einfach alles :D Habe ein Endlos-Formular mit einem gebundenen Datenfeld "kpbetrag" und in der ...

Windows Server
Neuer MS-SQL-Server
gelöst Frage von tingelWindows Server1 Kommentar

Hallo, Ich bin gerade dabei, mir Gedanken zu machen, wie ich am besten unseren SQL-Server 2008 SP3 auf eine ...

Neue Wissensbeiträge
Windows 10

Autsch: Microsoft bündelt Windows 10 mit unsicherer Passwort-Manager-App

Tipp von kgborn vor 13 StundenWindows 102 Kommentare

Unter Microsofts Windows 10 haben Endbenutzer keine Kontrolle mehr, was Microsoft an Apps auf dem Betriebssystem installiert (die Windows ...

Sicherheits-Tools

Achtung: Sicherheitslücke im FortiClient VPN-Client

Tipp von kgborn vor 15 StundenSicherheits-Tools

Ich weiß nicht, wie häufig die NextGeneration Endpoint Protection-Lösung von Fortinet in deutschen Unternehmen eingesetzt wird. An dieser Stelle ...

Internet

USA: Die FCC schaff die Netzneutralität ab

Information von Frank vor 1 TagInternet3 Kommentare

Jetzt beschädigt US-Präsident Donald Trump auch noch das Internet. Der neu eingesetzte FCC-Chef Ajit Pai ist bekannter Gegner einer ...

DSL, VDSL

ALL-BM200VDSL2V - Neues VDSL-Modem mit Vectoring von Allnet

Information von Lochkartenstanzer vor 1 TagDSL, VDSL2 Kommentare

Moin, Falls jemand eine Alternative zu dem draytek sucht: Gruß lks

Heiß diskutierte Inhalte
TK-Netze & Geräte
VPN-fähige IP-Telefone
Frage von the-buccaneerTK-Netze & Geräte16 Kommentare

Hi! Weiss noch jemand ein VPN-fähiges IP-Telefon mit dem man z.B. einen Heimarbeitsplatz gesichert anbinden könnte? Habe nur einen ...

Windows Server
GPO nur für bestimmte Computer
Frage von Leo-leWindows Server13 Kommentare

Hallo Forum, gern würde ich ein Robocopy script per Bat an eine GPO hängen. Wichtig wäre aber dort der ...

Windows Server
KMS Facts for Client configuration
Frage von winlinWindows Server13 Kommentare

Hey Leute, wir haben in unserem Netz nun einen neuen KMS Server. Haben Bestands-VMs die noch nicht aktiviert sind. ...

Windows Tools
Software-Tool zum Entfernen von bösartigem Windows
Frage von emeriksWindows Tools11 Kommentare

Hi, siehe Betreff hat das jemals irgendjemand schonmal sinnvoll eingesetzt? (MRT) E.