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

gelöst Excel VBA Insert-Befehl auf Datenbank mit Rückgabe der ID des neuen Datensatzes

Mitglied: KgFmB

KgFmB (Level 1) - Jetzt verbinden

11.11.2008, aktualisiert 18.11.2008, 10588 Aufrufe, 6 Kommentare

Wer kann helfen.

Hallo zusammen,

folgendes müsste ich noch realisieren.

Ich habe eine Excelsheet, in dem ich Daten aus einer Datenbank lese.
Wegen mehrfachzugriff.

Nun speichere ich mir die ID des Datensatzes beim Auslesen in die erste Spalte.
Ich bin soweit, auch einen neuen Datensatz in die Datenbank zu erstellen.
Jetzt würde ich aber gerne im nächsten Schritt auch gleich die neue erstellte ID auszulesen.

Weil ich per VBA bei jeder Zelländerung eine Speicherung erzeuge und vor Update die erste Zelle der Spalte (steht ja die ID)
auslese und auf dieser ein Update mache.

Welche Möglichkeiten gibt es, dies zu realisieren.

Vielleicht kann mir einer weiterhelfen.

MfG
KgFmB
Mitglied: KgFmB
11.11.2008 um 14:10 Uhr
So hab mich jetzt erstmal damit beholfen, das ich nach dem INSERT gleich ein SELECT mit dem TOP 1 bzw. Limit 1 befehl.

wenn jedoch einer eine Alternativlösung hat.
Ich bin offen für alles.

MfG
KgFmB
Bitte warten ..
Mitglied: solverone
11.11.2008 um 15:31 Uhr
Hallo,
falls du noch einen weiteren primary key als "ID" in der tabelle hast, dann würde ich darauf ein SELECT mit Where-Klausel machen.

Mike
Bitte warten ..
Mitglied: KgFmB
11.11.2008 um 15:45 Uhr
Wäre auch eine Idee.
Aber wie erhalte ich von VBA aus den Key?
Ich mach einen einfaches "INSERT" und würd von dem erzeugten Datensatz die ID wieder zurückgeben.

Also mit dem Versuch TOP 1 bzw LIMIT 1 funktioniert es einwandfrei, muss halt hoffen, das nicht zwei User gleichzeitig einen Datensatz anlegen.
User A speichert
User B speichert
User A frägt den letzten Datensatz ab -> erhält die ID von User B
User B frägt den letzten Datensatz ab -> erhält die ID von User B

MfG
KgFmB
Bitte warten ..
Mitglied: solverone
11.11.2008 um 15:49 Uhr
Also
insert into <tablename>(ID,Key2) Values(null,'was weiß ich')
so in der art sieht deine insert anweisung aus, wobei key2 der weitere primary key ist...
die ID bekommst du dann mit
SELECT ID FROM <tablename> WHERE Key2='was weiß ich'

und dann ist es wurscht, welcher benutzer inzwischen datensätze angelegt hat...

mike
Bitte warten ..
Mitglied: KgFmB
18.11.2008 um 14:25 Uhr
Stimmt hast recht. Darauf bin ich gar nicht so gekommen. Ich kann dem si verwenden.
Danke.
Bitte warten ..
Mitglied: Biber
18.11.2008 um 20:33 Uhr
Moin KgmB,

ich finde das zu kompliziert und die Vorstellung von zwei redundanten PrimaryKeys in einer Tabelle schlichtweg gruselig.
Es gibt doch in der Datenbank (Access? mySQL? Oracle? DB2?) offensichtlich ein Feld "ID" mit einer automatisch erzeugten eindeutigen Nummer (AutoWert oder AutoIncrement oder Sequence oder Identity oder wie es die Datenbank nennen mag.)
Und "normalerweise" oder zumindest wählbar kann dieser autmatisch generierte Wert doch aufsteigend festgelegt werden.

Wenn du also in der Datentabelle noch ein Feld "Username" anfügst mit dem Defaultwert des Usernamens (sei es des Datenbankusers oder des unter Windows angemeldeten Users =%username%), dann bekommst Du doch immer den jüngsten von diesem Benutzer angelegten Satz mit einer Abfrage:
"gib mit die höchste ID mit dem Usernamen des angemeldeten Users, oder auf SQLisch:
01.
SELECT Max(ID) as UsersNeuesteID from TableX  
02.
Where username=Environ('Username')
[wenn es denn über VBA-Krams und den %username% der Windows-Umgebung sein soll.]
Oder bei "richtigen Datenbanken halt über das special register USERID, also den Datenbank-User.]

[Edit] Ergänzung:
Den ganzen neu(est)en Datensatz würdest Du z.B. so erhalten:
01.
Select a.* FROM TableX a, 
02.
(SELECT max(id) as maxID FROM TableX  
03.
WHERE username = Environ('USERNAME')) x 
04.
WHERE a.id=x.maxID;
[/Edit]

Grüße
Biber
Bitte warten ..
Ähnliche Inhalte
Microsoft Office

EXCEL - Tabellenabfrage mit Rückgabe eines Wertes

gelöst Frage von DJSchwollkoppMicrosoft Office7 Kommentare

Hallo zusammen, ich habe eine Excel-Tabelle, in der ich 3 Kriterien abfragen muss, um einen Wert zurückzubekommen: So sieht ...

Microsoft Office

Excel 2010 VBA automatisch erweitern mit Datensätze aus Tabelle

Frage von karlchristianMicrosoft Office3 Kommentare

Hallo, ich habe eine Excel Tabelle QUELLE wo Worte (Datenbanken) untereinander stehen. Diese Datenbanken versuche ich per VBA in ...

PHP

PHP und MAX id bzw. LAST INSERT ID

gelöst Frage von ProtectedPHP8 Kommentare

Hallo, ich benötige die Letzte ID von der Tabelle xy. Leider kann ich LAST_INSERT_ID nicht verwenden, weil kein INSERT ...

VB for Applications

VBA: Verständnisfrage bei Funktionen, Rückgabe von Werten

gelöst Frage von AximandVB for Applications3 Kommentare

Hallo, ich bekomm gerade etwas nicht in meinen Schädel. Ich habe eine Funktion erstellt, die eine SQL-Abfrage zusammenstellt: Diese ...

Neue Wissensbeiträge
Windows 10
Zero-Day-Lücke in Microsoft Edge
Information von kgborn vor 20 StundenWindows 10

In Microsofts Edge-Browser klafft wohl eine nicht geschlossene (0-Day) Sicherheitslücke im Just In Time Compiler (JIT Compiler) für Javascript. ...

Sicherheit
Microsoft und Skype: Sicherheit
Information von kgborn vor 20 StundenSicherheit

Die Tage gab es ja einige Berichte zur Sicherheit des Skype-Updaters. Der Updater von Skype läuft unter dem Konto ...

Datenschutz

Behörden ignorieren Sicherheitsbedenken gegenüber Windows 10

Information von Penny.Cilin vor 1 TagDatenschutz8 Kommentare

Hallo, passend zum Thema Ablösung LIMUX in München ein Beitrag bei Heise (siehe Link folgend). Behörden ignorieren Sicherheitsbedenken gegenüber ...

Sicherheit
Information Security Hub Munich airport
Information von brammer vor 1 TagSicherheit

Hallo, Neues Center für Cyber Kriminalität am Münchener Flughafen brammer

Heiß diskutierte Inhalte
Exchange Server
Exchange Postfach Einbindung Betriebs-rat -Arzt, Bewerbung .
gelöst Frage von YellowcakeExchange Server23 Kommentare

Hey ich habe da mal eine Denksport Aufgabe bekommen Genutzt wird ein Exchange Server 2010. hier gibt es den ...

Windows Server
Delgegierte OU via RDP verwalten - Objektverwaltung zuweisen
gelöst Frage von TOAOICEWindows Server12 Kommentare

Hallo, ich habe folgendes Problem. Ich möchte in meiner Domäne (Server2016), einer Gruppe (OUAdmin) Berechtigungen auf die OU Test ...

LAN, WAN, Wireless
Gigabit-Lan mit zwei 4-adrigen Kabeln?
Frage von ArvedirmerLAN, WAN, Wireless11 Kommentare

Ich habe folgendes Problem: Ich betreue eine kleine Firma die sich im 1.Stock eines Gebäudes befindet. Es existiert ein ...

Router & Routing
Routing Probleme mit Firewall
gelöst Frage von mb1811Router & Routing9 Kommentare

Hallo Zusammen! Ich habe folgende Problematik, wo ich ein wenig Input benötige: Gem. angehängter Skizze habe ich folgenden Stand: ...