Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1676to1680
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

mit schleife möglich?

mit schleife möglich?
26.02.2019 21:39:04
Thomas
Hallo Excelfreunde,
ich bin auf der suche nach einer Schleife.
Mit den untenstehenden Code teil kann ich in Access den Datensatz mit der ID (Steht in Tabelle2 A1) bearbeiten.
Nun möchte ich gern Mehrere Datensätze in Access bearbeiten. Die betroffenen Datensätze stehen in der Tabelle2 in den Spalten A bis d wobei die ID immer in Spalte A steht.
Ich meine, wenn in den Zeilen (Tabelle2) a1 bis z.B a5 Datensätze stehen führe den Code unten 5 mal durch. Wobei beim zweiten durchlauf dann aus a1 = a2, aus e1 =e2 und aus d1 = d2 usw.. wird
Kann man dies mit einer Schleife machen.
Falls ja kann mir jemand dabei helfen?
Habt schon mal recht vielen dank für euer Interesse.
mfg thomas
Dim id
id = Sheets("Tabelle2").Range("A" & 1).
Set objRSet = objDBank.OpenRecordset("Select * From Personen WHERE FundNr=" & id & ";")
With objRSet
If Not .EOF Then
.Edit
!Linie = [Sheets("Tabelle2").Range("E1").].Value
!Vorname = [Sheets("Tabelle2").Range("d1").].Value
.Update
End If
End With

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: mit schleife möglich?
27.02.2019 09:26:11
Daniel
Hallo Thomas,
probiers mal so:
For i = 1 To Range("1:1").SpecialCells(xlCellTypeConstants).Count
id = Sheets("Tabelle2").Range("A" & i)
Set objRSet = objDBank.OpenRecordset("Select * From Personen WHERE FundNr=" & id & ";")
With objRSet
If Not .EOF Then
.Edit
!Linie = [Sheets("Tabelle2").Range("E" & i ).].Value
!Vorname = [Sheets("Tabelle2").Range("D" & i).].Value
.Update
End If
End With
Next i
Gruß
Daniel
AW: mit schleife möglich?
27.02.2019 11:29:59
Thomas
Hallo Daniel M.
hab riesen dank für die Lösung. Es wird auch alles richtig eingetragen. Das einzige Problem was noch ist sobald das Makro alle Datensätze abgearbeitet hat erfolgt die Meldung
" Error: 3075 Syntaxfehler(Fehlender Operator)in Ausdruck "'FundNr='
Ich glaube das Macro weiss nicht das es dann aufhören muss.
Kannst Du nochmal schauen.
mfg thomas
Anzeige
AW: mit schleife möglich?
27.02.2019 12:05:59
Daniel
Hatte einen Denkfehler drin, ich war irgendwie gedanklich bei der ersten Zeile und nicht der ersten Spalte gelandet.
Anstatt For i = 1 to Range ("1:1")… muss es to Range("A:A") heißen.
Gruß
AW: mit schleife möglich?
27.02.2019 13:40:43
Thomas
Hallo Daniel,
der Code sieht jetzt bei mir so aus
For i = 1 To Range("A:A").SpecialCells(xlCellTypeConstants).Count
id = Sheets("Tabelle2").Range("A" & i)
Set objRSet = objDBank.OpenRecordset("Select * From Personen WHERE FundNr=" & id & ";")
With objRSet
If Not .EOF Then
.Edit
!Linie = Sheets("Tabelle2").Range("E" & i).Value
!Finder = Sheets("Tabelle2").Range("D" & i).Value
.Update
End If
End With
Next i
~f~
aber leider ist dieser Fehler immer noch. ich habe ihn schon versucht mit
If i > anzahlDaten Then
' Exit For
' Else
abzufangen. Aber leider bekomme ich dann die Meldung ~f~" Next ohne For "
Das Makro möchte einfach nicht stoppen wenn der Zähler i grösser ist als die Anzahl der Daten in der Tabelle2 Spalte A.
Schaust du nochmal drüber?
mfg thomas
Anzeige
AW: mit schleife möglich?
27.02.2019 14:24:39
Daniel
Das kann ich dir nicht beantworten, ohne deine Tabelle zu sehen. Wenn ich den Code bei mir ausprobiere, führt er die Schleife genau so oft aus wie er soll und meckert nicht.
Versuch mal so
For i = 1 To Range("A:A").SpecialCells(xlCellTypeConstants).Count
id = Sheets("Tabelle1").Range("A" & i)
If WorksheetFunction.IsNumber(id) Then
Set objRSet = objDBank.OpenRecordset("Select * From Personen WHERE FundNr=" & id & ";")
With objRSet
If Not .EOF Then
.Edit
!Linie = Sheets("Tabelle2").Range("E" & i).Value
!Finder = Sheets("Tabelle2").Range("D" & i).Value
.Update
End If
End With
End If
Next i

Anzeige
besten dank an Daniel perfekt
27.02.2019 14:46:43
Thomas
Hallo Daniel,
jetzt klappt es perfekt.
Du hast mir ein riesen gefallen getan.
vielen vielen dank.
mfg thomas
AW: besten dank an Daniel perfekt
27.02.2019 15:00:32
Daniel
Gern geschehen, freut mich dass es jetzt klappt.
AW: mit schleife möglich?
27.02.2019 13:40:45
Thomas
Hallo Daniel,
der Code sieht jetzt bei mir so aus
For i = 1 To Range("A:A").SpecialCells(xlCellTypeConstants).Count
id = Sheets("Tabelle2").Range("A" & i)
Set objRSet = objDBank.OpenRecordset("Select * From Personen WHERE FundNr=" & id & ";")
With objRSet
If Not .EOF Then
.Edit
!Linie = Sheets("Tabelle2").Range("E" & i).Value
!Finder = Sheets("Tabelle2").Range("D" & i).Value
.Update
End If
End With
Next i
~f~
aber leider ist dieser Fehler immer noch. ich habe ihn schon versucht mit
If i > anzahlDaten Then
' Exit For
' Else
abzufangen. Aber leider bekomme ich dann die Meldung ~f~" Next ohne For "
Das Makro möchte einfach nicht stoppen wenn der Zähler i grösser ist als die Anzahl der Daten in der Tabelle2 Spalte A.
Schaust du nochmal drüber?
mfg thomas
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige