SQL Tabellenspalte mit Zahlen

Mitglied: RSST-SOR

RSST-SOR (Level 1) - Jetzt verbinden

24.02.2021 um 20:35 Uhr, 733 Aufrufe, 13 Kommentare

Hallo Zusammen

Ich habe ein VBA Sub welches in meine Datenbank schreibt. Das Klappt solange gut solange ich nicht dafür eine Spalte wie zB "110Historie" verwende. Ich hab schon versucht mit unter ' zu stellen oder unter [ jedoch klappt auch nicht.

Funktioniert:
INSERT INTO ProjektRegisterBearbeitszeit (MitarbeiterId, Bearbeitungsdatum, Inhaltsverzeichnis) VALUES ('101044', '24.02.2021', '20:33:18')

Funktioniert nicht:
INSERT INTO ProjektRegisterBearbeitszeit (MitarbeiterId, Bearbeitungsdatum, 110Historie) VALUES ('101044', '24.02.2021', '20:10:15')


Bitte um Mithilfe

Public Sub RegisterZeitInsertSQL()
Dim conn As New ADODB.Connection 'Rev b
Dim rec As New ADODB.Recordset
Dim comm As New ADODB.Command
Dim cn As ADODB.Connection
Set cn = New ADODB.Connection
Dim WSAktiveZeit As String


Mitarbeiter = Application.UserName 'Rev b
ArbeitsBeginn = Format(Now(), "hh:mm:ss") 'Rev b
Datum = Date 'Rev b
WSAktiveZeit = ActiveSheet.Name
If WSAktiveZeit Like "*.*" Then 'SCHLEIFE 11.000 Rev b
WSAktiveZeit = Replace(WSAktiveZeit, ".", "")
End If 'SCHLEIFE 11.000 Rev b
If WSAktiveZeit Like "* *" Then 'SCHLEIFE 12.000 Rev b
WSAktiveZeit = Replace(WSAktiveZeit, " ", "0")
End If 'SCHLEIFE 12.000 Rev b

MitarbeiterID = MitarbeiterPersNr(Mitarbeiter) 'Rev b
conn.Open "driver={SQL Server};" & _
"server=RSST-OFFICEIII\RSSTSQLSERVER;database=RSSTProjektArbeitszeit;" 'Rev b

Set comm.ActiveConnection = conn 'Rev b

SQLString = "INSERT INTO ProjektRegisterBearbeitszeit (" _
& "MitarbeiterId, Bearbeitungsdatum, " & WSAktiveZeit & ")" _
& " VALUES " _
& "('" & MitarbeiterID & "'," _
& " '" & Datum & "'," _
& " '" & ArbeitsBeginn & "')" 'Rev b


Debug.Print SQLString 'Rev b

comm.CommandText = SQLString

rec.Open comm 'Rev b
conn.Close



End Sub
Mitglied: em-pie
24.02.2021 um 20:59 Uhr
Moin,

Funktioniert nicht
ist eine nichts sagende Fehlerbeschreibung.
Eine Fehlermeldung wäre interessant.

Ferner hilft es mir (beim Debuggen) immer, wenn ich das SQL-Statement einmal irgendwo als Text/ MsgBox hinschreibe...
Dann sehe ich auch, was er da zusammenbaut.
Z.B. mit

Ich vermute mal, er findet den Spaltennamen "110Historie" nicht, weil es den in der Datenbank-Tabelle nicht gibt. Wenn du den Spaltennamen der Tabelle in der DB mit "Inhaltsverzeichnis" fest setzt, klappt es ja.


PS:
Nutze bitte Code-Tags.
Links, neben dem Textfeld gibt es div. Symbole. Das </> wäre das geeignete

Gruß
em-pie
Bitte warten ..
Mitglied: RSST-SOR
24.02.2021 um 21:11 Uhr
Also die Spalte 110Historie gibt es in der DB
https://administrator.de/images/c/1/7/5ffc38b58ebaec7b8c14887e63ef4aee.j ...





Zitat von @em-pie:

Moin,

Funktioniert nicht
der Fehler lautet bei


https://administrator.de/images/c/1/7/da9f6b47da71d90545b2ddb9be1ea33f.j ...
db_screenshot 2021-02-24 210637 - Klicke auf das Bild, um es zu vergrößernscreenshot 2021-02-24 210538 - Klicke auf das Bild, um es zu vergrößern
Bitte warten ..
Mitglied: em-pie
24.02.2021 um 21:32 Uhr
Zitat von @RSST-SOR:
Und das ist 1:1 so aus Excel herauskopiert?

Ich habe die Vermutung, da hängt irgendwo noch ein verstecktes Steuerzeichen o.Ä.

Kannst du, wenn du das Statement einmal per Copy&Paste ins Management Studio bringst, dann Fehlerfrei ausführen?
Bitte warten ..
Mitglied: mbehrens
24.02.2021 um 21:44 Uhr
Zitat von @RSST-SOR:

Funktioniert:
INSERT INTO ProjektRegisterBearbeitszeit (MitarbeiterId, Bearbeitungsdatum, Inhaltsverzeichnis) VALUES ('101044', '24.02.2021', '20:33:18')

Funktioniert nicht:
INSERT INTO ProjektRegisterBearbeitszeit (MitarbeiterId, Bearbeitungsdatum, 110Historie) VALUES ('101044', '24.02.2021', '20:10:15')

Nicht alles, was man im Spaltennamen eintippen kann, sollte auch verwendet werden. Je nach Kompatibilitätslevel der DB sollte er eben nicht mit einer Zahl beginnen. Falls doch gilt wie immer die Regel:

When identifiers are used in Transact-SQL statements, the identifiers that do not comply with these rules must be delimited by double quotation marks or brackets.
Bitte warten ..
Mitglied: em-pie
24.02.2021, aktualisiert um 21:56 Uhr
Zitat von @mbehrens:
When identifiers are used in Transact-SQL statements, the identifiers that do not comply with these rules must be delimited by double quotation marks or brackets.
Jo, recht hast du, bzw. deine Quelle :-) face-smile

Zitat von @RSST-SOR:
Ich hab schon versucht mit unter ' zu stellen oder unter [ jedoch klappt auch nicht.
Ich hab überlesen, dass er nur ein ' und kein " nutzte...

Mit einem
sollte es klappen
Bitte warten ..
Mitglied: RSST-SOR
24.02.2021 um 22:02 Uhr
Nicht alles, was man im Spaltennamen eintippen kann, sollte auch verwendet werden. Je nach Kompatibilitätslevel der DB sollte er eben nicht mit einer Zahl beginnen. Falls doch gilt wie immer die Regel:

When identifiers are used in Transact-SQL statements, the identifiers that do not comply with these rules must be delimited by double quotation marks or brackets.

Habe daher folgendes Versucht:


jedoch leider Vergebens ==> Fehler (80040e14)
https://administrator.de/images/c/1/7/a04bfe7cf46e0e463437ae9456d03ae7.j ...
fehler klammer screenshot 2021-02-24 220003 - Klicke auf das Bild, um es zu vergrößern
Bitte warten ..
Mitglied: em-pie
24.02.2021 um 22:05 Uhr
DU darfst keine runden Klammern verwenden sondern nur Eckige.
Alternativ halt Anführungszeichen/ Gänsefüßchen...
Bitte warten ..
Mitglied: mbehrens
24.02.2021 um 22:12 Uhr
Zitat von @RSST-SOR:

Nicht alles, was man im Spaltennamen eintippen kann, sollte auch verwendet werden. Je nach Kompatibilitätslevel der DB sollte er eben nicht mit einer Zahl beginnen. Falls doch gilt wie immer die Regel:

When identifiers are used in Transact-SQL statements, the identifiers that do not comply with these rules must be delimited by double quotation marks or brackets.

Habe daher folgendes Versucht:


engl.: brackets [AE] oder square brackets [BE], Unicode: U+005B und U+005D .
Bitte warten ..
Mitglied: RSST-SOR
24.02.2021 um 22:17 Uhr
Mit einem
sollte es klappen

leider Nein


https://administrator.de/images/c/1/7/cc52ab1912db60b28a36b788e754e27b.j ...
fehler klammer2screenshot 2021-02-24 221625 - Klicke auf das Bild, um es zu vergrößern
Bitte warten ..
Mitglied: em-pie
24.02.2021 um 22:20 Uhr
Oben war es doch die ganze Zeit die Spalte 110Historie, jetzt hast du "plötzlich" 100Historie.
Ist das der Grund?
Bitte warten ..
Mitglied: RSST-SOR
24.02.2021 um 22:54 Uhr
Nein ist nicht der Grund

Ich hab jetzt direkt im SSMS mal probiert

und es funktioniert


jetzt muss ich das ganze noch aus dem EXCEL VBA hinbekommen

https://administrator.de/images/c/1/7/8d3117f71fef4be2f4f4a1e3e16d1ad6.j ...
lösung_screenshot 2021-02-24 225110 - Klicke auf das Bild, um es zu vergrößern
Bitte warten ..
Mitglied: RSST-SOR
24.02.2021 um 23:07 Uhr
Zitat von @em-pie:

Oben war es doch die ganze Zeit die Spalte 110Historie, jetzt hast du "plötzlich" 100Historie.
Ist das der Grund?

bei mir variiert es ja jenachdem welches Registerblatt im EXCEL File aktiv ist
Bitte warten ..
Mitglied: ukulele-7
25.02.2021, aktualisiert um 08:31 Uhr
MSSQL nutzt von Haus aus eckige Klammern um Schlüsselwörter etc. in Spalten- oder Tabellennamen zu ermöglichen - @em-pie hat es bereits geschrieben.


Bitte warten ..
Heiß diskutierte Inhalte
Festplatten, SSD, Raid
Festplatte aus defekten Notebook ausgebaut - wird nicht erkannt - Wie gelange ich an meine Daten?
gelöst 1nCoreVor 1 TagFrageFestplatten, SSD, Raid15 Kommentare

Hallo liebe Community, nach 7 Jahren hat mein XMG Notebook seinen Geist aufgegeben In dem Notebook waren zwei Festplatten verbaut (eine für System und ...

Erkennung und -Abwehr
Wie geschickt sich Malware verstecken kann - Ein Beispiel aus der Praxis eines Security Experts
colinardoVor 20 StundenTippErkennung und -Abwehr4 Kommentare

Servus Kollegen und Mitstreiter, da ja in letzter Zeit die Exchange-Lücken die Admin-Landschaft ziemlich aufgewirbelt haben und dabei auch immer mal wieder "sogenannte" Admins ...

Internet
Woher holt sich Android die Kontaktdaten von unbekannten Rufnummern?
gelöst anteNopeVor 1 TagFrageInternet8 Kommentare

Hallo zusammen, seit einiger Zeit merke ich, dass mir mein Android Gerät Namen und Informationen zu mir unbekannten Teilnehmern präsentiert. Soll heißen eine nicht ...

Windows Netzwerk
MS Lizenzierung - externe Scandienstleistung
monstermaniaVor 1 TagFrageWindows Netzwerk9 Kommentare

Hallo Allerseits, ich habe da mal eine Frage an die MS Lizenzspeziallisten. Eine externe Firma soll Scandienstleistungen für uns erledigen. Dazu ist angedacht, dass ...

Exchange Server
Exchange Update CU19 auf CU20 Fehler - Eine weitere Version dieses Produkts ist bereits installiert
gelöst StefanKittelVor 1 TagFrageExchange Server6 Kommentare

Hallo, ich habe hier einen Exchange 2016 mit CU19 (15.1.2176.2). Darauf wollte ich nun CU20 installiert. Download Es erscheint Eine weitere Version dieses Produkts ...

Windows Server
Hat Microsoft die WindowsServerSicherung oder diskpart zerpatcht?
anteNopeVor 15 StundenFrageWindows Server3 Kommentare

Hallo, kann es eventuell sein, dass Microsoft mit seinen letzten Updates die WindowsServerSicherung bzw. diskpart zerschossen hat? Es häufen sich bei mir seit gestern ...

Drucker und Scanner
Epson WF-6590 druckt nur cyan und gelb
gelöst ITCrowdSupporterVor 1 TagFrageDrucker und Scanner15 Kommentare

Guten Tag :-) Es geht um einen Epson Workforce Pro WF-6590. Er druckt nur cyan und gelb obwohl neue Originalpatronen für schwarz und magenta ...

Windows 10
Windows 10 Updates im Abgesicherten Modus nicht möglich!
gelöst Yuuto.LucasVor 1 TagFrageWindows 1016 Kommentare

Hallo, ich habe aktuell ein Problem bei einem Kunden Rechner. Bei diesem gibt es Probleme mit dem Soundkarten Treiber hdaudio.inf wegen dem der PC ...