Hallo Access-Gemeinde.
Ich glaube ich stehe auf der Leitung.
Ich importiere Daten von Excel in eine Tabelle in Access. Wie kann ich die Anzahl der Daten die importiert wurden anzeigen lassen.
mein Code lautet:
Private Sub Antragdatenimport_Click()
If MsgBox(prompt:="Wollen sie Daten importieren?", Buttons:=vbYesNo + vbQuestion) = vbNo Then
Exit Sub
End If
If MsgBox(prompt:="Daten wo die PersNr oder PolKz" & vbCrLf & "sich schon in der Datenbank befinden," & vbCrLf & "werden NICHT IMPOTIERT!", Buttons:=vbOKOnly + vbQuestion) = vbNo Then
Exit Sub
End If
DoCmd.SetWarnings False
DoCmd.RunMacro "Datentransfer_in_T_Person"
End Sub
Bitte um Eure Hilfe.
Danke Ernst
Hi Ernst,
Private Sub Antragdatenimport_Click()
Dim Anzahl_Daten_vor_Importieren As Long
Dim Anzahl_Daten_nach_Importieren As Long
If MsgBox(prompt:="Wollen sie Daten importieren?", Buttons:=vbYesNo + vbQuestion) = vbNo Then Exit Sub
If MsgBox(prompt:="Daten wo die PersNr oder PolKz" & vbCrLf & "sich schon in der Datenbank befinden," & vbCrLf & "werden NICHT IMPOrrrrrrTIERT!", Buttons:=vbOKOnly + vbQuestion) = vbNo Then Exit Sub
Anzahl_Daten_vor_Importieren = Me.RecordsetClone.RecordCount
DoCmd.SetWarnings False ' wenn Du das ausschaltest, sollte es später auch wieder reaktiviert werden
DoCmd.RunMacro "Datentransfer_in_T_Person"
DoCmd.SetWarnings True
Anzahl_Daten_nach_Importieren = Me.RecordsetClone.RecordCount
MsgBox "Anzahl Importierter Daten = " & Nz(Anzahl_Daten_nach_Importieren, 0) - Nz(Anzahl_Daten_vor_Importieren, 0)
End Sub
Ich setze voraus, dass das ganze in einem Formular steht, bei dem eine Datenquelle hinterlegt ist, die die Tabelle enthält, in die importiert werden soll.
Harald
Hi Harald
Danke für die rasche Hilfe. Habe den Code übernommen und anstelle dem Makro >TransferSpreadsheet< eingebaut, damit du auch die Tabelle erkennst.
Habe es auch in das Formular Personen, was die Datenquelle (t_Person) hat, mit einem Button eingebaut. (siehe Code)
Beim ausführen importiert er die Daten, Zeigt mir aber 0 importierte Daten an.
Wo kann der Fehler sein?
Private Sub Antragdatenimport_Click()
Dim Anzahl_Daten_vor_Importieren As Long
Dim Anzahl_Daten_nach_Importieren As Long
If MsgBox(prompt:="Wollen sie Daten importieren?", Buttons:=vbYesNo + vbQuestion) = vbNo Then Exit Sub
If MsgBox(prompt:="Daten wo die PersNr oder PolKz" & vbCrLf & "sich schon in der Datenbank befinden," & vbCrLf & "werden NICHT IMPORTIERT!", Buttons:=vbOKOnly + vbQuestion) = vbNo Then Exit Sub
Anzahl_Daten_vor_Importieren = Me.RecordsetClone.RecordCount
DoCmd.SetWarnings False ' wenn Du das ausschaltest, sollte es später auch wieder reaktiviert werden
DoCmd.TransferSpreadsheet acImport, 8, "t_Person", "D:\Allg\Einstellgenehmigung\Datenimport\Antrag.xls", True, ""
DoCmd.SetWarnings True
Anzahl_Daten_nach_Importieren = Me.RecordsetClone.RecordCount
MsgBox "Anzahl Importierter Daten = " & nz(Anzahl_Daten_nach_Importieren, 0) - nz(Anzahl_Daten_vor_Importieren, 0)
End Sub
Grüße Ernst
Hi,
probier mal, was die zusätzliche Zeile bringt:
DoCmd.SetWarnings True
Me.Requery
Anzahl_Daten_nach_Importieren = Me.RecordsetClone.RecordCount
Harald
Hi Harald
Danke - das war es! Die Aktualisierung hat es gebracht. Und man muss aufpassen, dass man es vom letzten Datensatz ausführt,
sonst wird falsch gerechnet.
Danke Ernst
:)
Hi Harald
Zusätzlich habe ich > DoCmd.GoToRecord acForm, "f_Personen", acLast < eingebaut.
Er hat nur beim ersten Import (wenn noch keine Daten aufgenommen wurden) einen Rechenfehler.
Grüße Ernst