microsoft:access
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
| Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende Überarbeitung | ||
| microsoft:access [2020/08/28 13:26] – [Recordsets zum Bearbeiten von Datensätzen] franz | microsoft:access [2021/11/04 18:59] (aktuell) – Externe Bearbeitung 127.0.0.1 | ||
|---|---|---|---|
| Zeile 4: | Zeile 4: | ||
| eine Anleitung für [[https:// | eine Anleitung für [[https:// | ||
| - | |||
| ==== Besonderheit beim Export von Datumsfeldern in csv-Dateien ==== | ==== Besonderheit beim Export von Datumsfeldern in csv-Dateien ==== | ||
| Zeile 12: | Zeile 11: | ||
| < | < | ||
| NurDatum: NFormat(ZDate([Datum]);" | NurDatum: NFormat(ZDate([Datum]);" | ||
| + | |||
| </ | </ | ||
| * NurDatum ist das neu formatierte Datumsfeld | * NurDatum ist das neu formatierte Datumsfeld | ||
| * Datum ist das ursprüngliche Datumsfeld, das nicht ausgegeben werden soll | * Datum ist das ursprüngliche Datumsfeld, das nicht ausgegeben werden soll | ||
| + | |||
| + | ==== Datumsbereich einer Kalenderwoche ermitteln ==== | ||
| + | |||
| + | Bekommt man z.B. von einem Onlineversand die Information, | ||
| + | |||
| + | Übergabeparameter: | ||
| + | Rückgabewert: | ||
| + | Quelle: | ||
| + | |||
| + | < | ||
| + | Function KWStartDatum(intKW As Integer, _ | ||
| + | intJahr As Integer) As Date | ||
| + | Dim dtStart As Date | ||
| + | Dim dtJahr As Date | ||
| + | |||
| + | KWStartDatum = DateSerial(1980, | ||
| + | If Not IsDate(DateSerial(intJahr, | ||
| + | intJahr = Year(Now) ' | ||
| + | End If | ||
| + | If intKW <1 Or intKW> 53 Then | ||
| + | dtJahr = DateSerial(intJahr, | ||
| + | intKW = KW(dtJahr) | ||
| + | dtStart = dtJahr | ||
| + | Else | ||
| + | dtStart = DateSerial(intJahr, | ||
| + | End If | ||
| + | Do Until KW(dtStart) = intKW | ||
| + | DoEvents | ||
| + | dtStart = dtStart + 1 | ||
| + | Loop | ||
| + | |||
| + | KWStartDatum = dtStart | ||
| + | |||
| + | End Function | ||
| + | |||
| + | </ | ||
| Zeile 29: | Zeile 65: | ||
| Ein Tipp von Smart Tools Publishing | Ein Tipp von Smart Tools Publishing | ||
| - | Um per VBA eine leere neue Datenbank anzulegen, setzen Sie die Funktion " | + | Um per VBA eine leere neue Datenbank anzulegen, setzen Sie die Funktion " |
| - | \\ | + | |
| - | - Wechseln Sie mit **Alt+F11** in die VBA-Entwicklungsumgebung. | + | |
| - | - Wählen Sie das Menü // | + | |
| - Setzen Sie eine Referenz auf " | - Setzen Sie eine Referenz auf " | ||
| - Nehmen Sie in Ihrer VBA-Routine die folgende Deklaration bzw. die folgenden Anweisungen auf: | - Nehmen Sie in Ihrer VBA-Routine die folgende Deklaration bzw. die folgenden Anweisungen auf: | ||
| Zeile 44: | Zeile 78: | ||
| ===== Recordsets zum Bearbeiten von Datensätzen ===== | ===== Recordsets zum Bearbeiten von Datensätzen ===== | ||
| + | |||
| + | entnommen aus den SmartTools Access Weekly 33-35 | ||
| Um programmatisch auf die Inhalte von Tabellen zuzugreifen, | Um programmatisch auf die Inhalte von Tabellen zuzugreifen, | ||
| Zeile 57: | Zeile 93: | ||
| < | < | ||
| - | **'' | + | Dim db As DAO.Database |
| Dim rs As DAO.Recordset | Dim rs As DAO.Recordset | ||
| Dim fld As DAO.Field | Dim fld As DAO.Field | ||
| - | '' | + | Set db = CurrentDb() |
| Set rs = db.OpenRecordset(" | Set rs = db.OpenRecordset(" | ||
| For Each fld In rs.Fields | For Each fld In rs.Fields | ||
| Zeile 66: | Zeile 102: | ||
| Next | Next | ||
| rs.Close | rs.Close | ||
| - | '' | + | Set rs = Nothing |
| Set db = Nothing | Set db = Nothing | ||
| - | '' | + | End Sub |
| + | |||
| + | </ | ||
| + | |||
| + | Um sich durch Recordsets zu bewegen oder den Status von Recordsets abzufragen, werden die folgenden Methoden und Eigenschaften verwendet: | ||
| + | |||
| + | * '' | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | **ein Beispiel: | ||
| + | |||
| + | < | ||
| + | Sub Test3() | ||
| + | Dim db As DAO.Database | ||
| + | Dim rs As DAO.Recordset | ||
| + | Dim Anz As Long, I As Long | ||
| + | |||
| + | Set db = CurrentDb() | ||
| + | Set rs = _ | ||
| + | db.OpenRecordset(" | ||
| + | " | ||
| + | Anz = rs.RecordCount | ||
| + | For I = 1 To Anz | ||
| + | Debug.Print rs(" | ||
| + | rs.MoveNext | ||
| + | Next | ||
| + | rs.Close | ||
| + | |||
| + | Set rs = Nothing | ||
| + | Set db = Nothing | ||
| + | |||
| + | End Sub | ||
| + | |||
| + | </ | ||
| + | |||
| + | Um einen **Feldinhalt mit DAO zu ändern, | ||
| + | |||
| + | < | ||
| + | rs.Edit: | ||
| + | rs(" | ||
| + | rs.Update: | ||
| + | |||
| + | </ | ||
| + | |||
| + | Beispiel: | ||
| + | |||
| + | < | ||
| + | Sub Test6a() | ||
| + | Dim db As DAO.Database | ||
| + | Dim rs As DAO.Recordset | ||
| + | Dim Anz As Long, I As Long | ||
| + | |||
| + | Set db = CurrentDb() | ||
| + | Set rs = _ | ||
| + | db.OpenRecordset(" | ||
| + | rs.MoveLast | ||
| + | Anz = rs.RecordCount | ||
| + | rs.MoveFirst | ||
| + | For I = 1 To Anz | ||
| + | rs.Edit | ||
| + | rs(" | ||
| + | rs.Update | ||
| + | rs.MoveNext | ||
| + | Next | ||
| + | rs.Close | ||
| + | |||
| + | Set rs = Nothing | ||
| + | Set db = Nothing | ||
| + | |||
| + | End Sub | ||
| + | |||
| + | </ | ||
| + | |||
| + | Um neue Datensätze zu einem Recordset hinzuzufügen, | ||
| + | |||
| + | Beispiel: | ||
| + | |||
| + | < | ||
| + | Sub Test7a() | ||
| + | Dim db As DAO.Database | ||
| + | Dim rs As DAO.Recordset | ||
| + | Dim I As Long | ||
| + | |||
| + | Set db = CurrentDb() | ||
| + | Set rs = _ | ||
| + | db.OpenRecordset(" | ||
| + | rs.AddNew | ||
| + | rs(" | ||
| + | rs(" | ||
| + | ..... | ||
| + | rs(" | ||
| + | rs.Update | ||
| + | rs.Close | ||
| + | |||
| + | Set rs = Nothing | ||
| + | Set db = Nothing | ||
| + | |||
| + | End Sub | ||
| + | |||
| + | </ | ||
| + | |||
| + | Das Löschen eines Datensatzes erfolgt bei DAO mit der Methode " | ||
| + | |||
| + | Beispiel: | ||
| + | |||
| + | < | ||
| + | Sub Test8() | ||
| + | Dim db As DAO.Database | ||
| + | Dim rs As DAO.Recordset | ||
| + | |||
| + | Set db = CurrentDb() | ||
| + | Set rs = _ | ||
| + | db.OpenRecordset(" | ||
| + | While Not rs.EOF | ||
| + | If rs(" | ||
| + | | ||
| + | If MsgBox(" | ||
| + | rs(" | ||
| + | "' | ||
| + | vbYesNo + vbQuestion) = vbYes Then | ||
| + | rs.Delete | ||
| + | End If | ||
| + | End If | ||
| + | rs.MoveNext | ||
| + | Wend | ||
| + | rs.Close | ||
| + | |||
| + | Set rs = Nothing | ||
| + | Set db = Nothing | ||
| + | |||
| + | End Sub | ||
| </ | </ | ||
microsoft/access.1598614019.txt.gz · Zuletzt geändert: (Externe Bearbeitung)