Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1680to1684
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Access als DB (ADO) Parameter Fehler?

Access als DB (ADO) Parameter Fehler?
09.03.2019 20:38:14
Martin
Hallo,
ich möchte in meiner Access Datenbank Mitarbeiter nahmen löschen (leeren) wenn das Datum Hier ist der Code:

Private Sub Workbook_Open()
Worksheets("Morgenrunden auswertung").Activate
Application.ScreenUpdating = False
Dim oAdoConnection As New ADODB.Connection
Dim oAdoRecordset As New ADODB.Recordset
Dim sAdoConnectString As String, sPfad As String
Dim datum As Date, tabelle As String, sql As String
datum = Worksheets("Morgenrunden auswertung").Range("E5").Value
tabelle = Worksheets("Hilfstabelle").Range("C22").Value
sPfad = Worksheets("Hilfstabelle").Range("C20").Value & Worksheets("Hilfstabelle").Range(" _
C19").Value
On Error GoTo Fehler
sAdoConnectString = "Provider=Microsoft.ACE.OLEDB.12.0; Data Source=" & sPfad
oAdoConnection.Open sAdoConnectString
sql = "Update " & tabelle & " SET [mitarbeiter] = "" WHERE (((JBJ.datum)

Desweiteren weiß ich nicht wie ich Access 2016 Passwort schütze. Laut Microsoft muss ich die Datei dafür Exklusiv öffnen aber die dort beschriebenen art funktioniert nicht ich finde die Auswahl der öffnen Möglichkeiten.

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Access als DB (ADO) Parameter Fehler?
09.03.2019 20:51:12
Luschi
Hallo Martin,
wie das geht, kannst Du hier nachlesen, Stichwort: SQL-Strings mit Datumswerten
https://codekabinett.com/rdumps.php?Lang=1&targetDoc=vba-sql-string-tutorial
Gruß von Luschi
aus klein-Paris
AW: Access als DB (ADO) Parameter Fehler?
09.03.2019 22:28:51
Martin
Hallo Luschi, danke für die rasche antwort.
ich hab das so versucht aber ich bekomme immer die Meldung das die Abfrage nicht vollständig ist.
...
datum = Worksheets("Morgenrunden auswertung").Range("E5").Value
datum = Format(datum, "MM/DD/YYYY")
tabelle = Worksheets("Hilfstabelle").Range("C22").Value
sPfad = Worksheets("Hilfstabelle").Range("C20").Value & Worksheets("Hilfstabelle").Range(" _
C19").Value
On Error GoTo Fehler
sAdoConnectString = "Provider=Microsoft.ACE.OLEDB.12.0; Data Source=" & sPfad
oAdoConnection.Open sAdoConnectString
sql = "Update '" & tabelle & "' SET [mitarbeiter] = '' WHERE [datum] 
Ich habs in Access selbst versucht da klappt es, das Datum wird dort #3/6/2019# geschrieben. Aber obwohl ich das mit Format auf das Format vorgebe steht in der MSGBOX #03.06.2019#.
Anzeige
AW: Access als DB (ADO) Parameter Fehler?
09.03.2019 22:49:27
Luschi
Hallo Martin,
das ISO-Datumsformat hat den Vorteil, daß Excel nicht mehr dazwischenfunkt und mit aller Macht versucht, die länderspezifische Anzeige des Datums zu erzwingen; deshalb:
datum = Format(Worksheets("Morgenrunden auswertung").Range("E5").Value, "yyyy-mm-dd")
Gruß von Luschi
aus klein-Paris
AW: Access als DB (ADO) Parameter Fehler?
09.03.2019 22:56:22
Martin
Trotzdem noch

Fehler: Syntaxfahler in der Abfrage. Eine Abfrageklausel ist unvollständig.
in der MsgBox wird mir folgendes angezeigt:
Update 'JBJ' Set [mitarbeiter] = '' WHERE [datum] 

Anzeige
AW: Access als DB (ADO) Parameter Fehler?
10.03.2019 13:43:32
Martin
Ich bin immer noch nicht weiter bei meinem Problem.
Private Sub Workbook_Open()
Worksheets("Morgenrunden auswertung").Activate
Application.ScreenUpdating = False
Dim oAdoConnection As New ADODB.Connection
Dim oAdoRecordset As New ADODB.Recordset
Dim sAdoConnString, tabelle As String, sql As String
Dim datum As Date
datum = Format(Worksheets("Morgenrunden auswertung").Range("E7").Value, "yyyy-mm-dd")
tabelle = Worksheets("Hilfstabelle").Range("C22").Value
sPfad = Worksheets("Hilfstabelle").Range("C20").Value & Worksheets("Hilfstabelle").Range(" _
C19").Value
On Error GoTo Fehler
sAdoConnectString = "Provider=Microsoft.ACE.OLEDB.12.0; Data Source=" & sPfad
oAdoConnection.Open sAdoConnectString
'Update JBJ
'Set mitarbeiter = Null
'WHERE (((JBJ.mitarbeiter) Is Not Null) AND ((JBJ.datum)
sql = "Update '" & tabelle & "'" _
& "Set mitarbeiter = Null " _
& "WHERE (((JBJ.mitarbeiter) Is Not Null) AND ((JBJ.datum)
Das hier sind die Felder der DB
Userbild
Und dies sind einmal die MsgBox
Userbild
und hier die 2 folgenden fehler
Userbild
Userbild
'Update JBJ
'Set mitarbeiter = Null
'WHERE (((JBJ.mitarbeiter) Is Not Null) AND ((JBJ.datum)
Das ist übrigents das was in Access in der SQL Abfrage funktioniert.
Vieleicht hat ja noch einer eine Idee.
Anzeige
AW: Access als DB (ADO) Parameter Fehler?
10.03.2019 13:46:10
Martin

sql = "Update '" & tabelle & "'" _
& "Set mitarbeiter = Null " _
& "WHERE (((JBJ.mitarbeiter) Is Not Null) AND ((JBJ.datum)#" & datum & "#));"
Geht übrigends auch nicht.
AW: Access als DB (ADO) Parameter Fehler?
10.03.2019 17:52:37
Luschi
Hallo Martin,
so ist das eben, wenn der Fragesteller keine Demodateien zum Testen bereitstellt,
schließlich ist das hier kein Philosopie-Seminar.
Habe das jetzt mal nachgebaut und bei mir klappt das so:

'Codes des Excel-Moduls
Option Explicit
Dim accApp As Object
Public Sub Update_DB()
'late binding statt Vba-Verweise (early binding)
'also alle Vba-Verweise auf Access/ADODB in der Exceldatei entfernen
Dim oAdoConnection As Object    'ADODB.Connection
Dim oAdoCommand As Object       'ADODB.COMMAND
'wird nicht benötigt!
'Dim oAdoRecordset As Object     'ADODB.Recordset
Dim sAdoConnectString As String, sPfad As String
Dim sDatum As String, tabelle As String, sqlQuery As String
''Prüfen, ob eine Access-Instanz offen ist
If acc_Aktiv Then
'wenn ja
MsgBox "Bitte alle Access-Instanzen schließen!"
Exit Sub
End If
'Achtung: diese Variable ist vom Typ String und nicht Date!!!
sDatum = Format(Worksheets("Morgenrunden auswertung").Range("E5").Value, "yyyy-mm-dd")
tabelle = Worksheets("Hilfstabelle").Range("C22").Value
'Pfad + Dateiname
sPfad = Worksheets("Hilfstabelle").Range("C20").Value & _
Worksheets("Hilfstabelle").Range("C19 ").Value
'siehe: https://www.connectionstrings.com/access/
sAdoConnectString = "Provider=Microsoft.ACE.OLEDB.12.0; " & _
"Data Source=" & sPfad & "; Persist Security Info=False;"
sqlQuery = "Update " & tabelle & " SET [mitarbeiter] = Null " & _
"WHERE ([datum]
Gruß von Luschi
aus klein-Paris
Anzeige
AW: Access als DB (ADO) Parameter Fehler?
10.03.2019 18:31:10
Martin
Vielen vielen dank Luschi.
ich weiß es ich nicht immer leicht mit mir :-D
Eine kleine frage hätte ich noch, wenn ich die Access Datei mit einem Passwort schütze. An welcher Stelle kommt das Passwort rein? sAdoConnectString?
AW: Access als DB (ADO) Parameter Fehler?
10.03.2019 18:36:06
Luschi
Hallo Martin,
siehe: https://www.connectionstrings.com/access/
Punkt: With database password (mdb file)
Gruß von Luschi
aus klein-Paris

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige