Zum Inhalt springen

schkaf

Mitglieder
  • Gesamte Inhalte

    2
  • Benutzer seit

  • Letzter Besuch

Alle Inhalte von schkaf

  1. @Amstelchen :valen ich gelobe besserung ist klar. Hat ich auch nur zum testen/verdeutlichen drin. Dauerte im übrigen auch ewig. vielen Dank für den Hinweis. Hab mich jetzt für Connection & Execute entschieden und einem Set RecSet = Connect.Execute("SELECT @@Identity")
  2. Hallo zusammen, ich habe folgendes Problem beim Lesen von Daten aus einer Access-DB. Bei einem Export aus Excel erzeuge ich Einträge in einer DB und dabei soll über einen Autowert ein eindeutiger Wert erzeugt werden, denn ich in einer anderen Tabelle dieser DB als Primärschlüssel verwenden möchte. Ich erzeuge also einen Eintrag, den ich anschließend gleich wieder lese um den Wert des Autowerts für meinen Primärschlüssel zu erhalten. Wahrscheinlich lese oder schreibe ich mit den falschen Parametern, denn beim Lesen des eben geschriebenen Eintrags erhalte ich oft kein Ergebnis. Im Debug-Modus ist das Lesen allerdings häufiger Erfolgreich als im Echtzeitbetrieb, was mich vermuten lässt, mein eben geschriebener Eintrag steht noch nicht wirklich in der DB sondern in einer Art Puffer. Ist meine Vermutung mit dem Puffer eigentlich korrekt? Wenn ja, wie kann ich die DB dazu bringen den Puffer zu leeren bzw. wie schreibe ich direkt in die DB (ohne Puffer)? Hier mein Code: Sub Test_01() Dim DB2 As DAO.Database Dim Connect As Connection Dim RecSet As Recordset Dim RecSet2 As DAO.Recordset Dim SQLString As String Dim E_Quelle As Worksheet Dim e_pfad As String Dim dp_pfad As String Dim db_tab1 As String Dim db_struktur1 As String Dim Personalnummer As String Dim A_Tag_Str As String Dim AZ_von As String Dim AZ_bis As String Dim S_ID As Integer dp_pfad = "H:\db.mdb" db_tab1 = "Tab_01" db_struktur1 = "Personalnummer,Datum, AZ_von, AZ_bis" Set Connect = New ADODB.Connection With Connect .Provider = "Microsoft.Jet.OLEDB.4.0" .ConnectionString = "Data Source=" & dp_pfad .Open End With e_pfad = "H:\tab.xls" Set E_Quelle = Workbooks.Open(e_pfad, ReadOnly:=True).Worksheets(1) ' Datensatz schreiben SQLString = "INSERT INTO " & db_tab1 & " (" & db_struktur1 & ") " & _ "VALUES (" & Personalnummer & A_Tag_Str & AZ_von & ", " & _ AZ_bis & ")" Set RecSet = New ADODB.Recordset RecSet.Open SQLString, Connect, adOpenDynamic, adLockReadOnly ' jetzt wieder lesen SQLString = "SELECT * FROM " & db_tab1 & " " & _ "WHERE Personalnummer = " & E_Quelle.Range("N13").Text & _ " AND AZ_Typ = " & AZ_typ & " " & _ "AND Datum = " & CLng(CDate(CStr(A_Tag))) & ";" XterVersuch: Set DB2 = CurrentDb Set RecSet2 = DB2.OpenRecordset(SQLString, dbOpenForwardOnly) ' prüfe ob lesen geklappt hat, falls nicht, probiers nochmal If RecSet2.RecordCount < 1 Then GoTo XterVersuch End If S_ID = RecSet2!Schlüssel_ID RecSet2.Close DB2.Close Connect.Close End Sub DB-Struktur (Primärschlüssel ist Personalnummer&Datum) Personalnummer (Zahl) Datum (Datum/Uhrzeit) Schlüssel_ID (AutoWert) AZ_von (Datum/Uhrzeit) AZ_bis (Datum/Uhrzeit) Vielen Dank schon mal für Eure hilfe!

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...