Wer kennt das (nicht):
Dieser Tip zeigt, wie man NACH dem Öffnen "automatisch" den Bildschirm mit einer bestimmten Satz-Zahl füllen und auf den neuen bzw. letzten Datensatz springen kann (ohne Sendkeys!) Ob das überhaupt gewünscht wird, liegt natürlich an der Anwendung und den subjektiven Wünschen des Benutzers, zB. wenn:
Wirkungsweise:
Hinweis: Der Datensatz-Markierer wird gesetzt! Neuer bzw. letzter Satz ist abhängig von FormularEigenschaft ".AllowAdditions" Modul mit Beispiel-Aufruf (For_HauptFormular muss offen sein!): Option Compare Database Option Explicit ' ************************************************************************ ' Funktion füllt den Bildschirm eines Formulars Form_1 so aus, ' dass SatzAnzahl Datensätze zu sehen sind ! ' und der neue Datensatz markiert wird. ' 2005-08-20 WICHTIG !!! : ' Vor dem Aufruf dieser Funktion muss das Formular so geöffnet ' bzw. positioniert werden, dass mindestens SatzAnzahl Datensätze ' angezeigt werden können. (Formular-Höhe muss ausreichen ! ) ' ************************************************************************ Public Function ZeigeDatensätze(Form_1 As Form, SatzAnzahl As Integer) ' Funktion füllt den Bildschirm eines Formulars Form_1 so aus, ' dass "SatzAnzahl" Datensätze zu sehen sind ' und der neue Datensatz markiert wird. On Error GoTo ERR_01 ' *** 2005-05-17 Vorher Satz schwarz markieren !!, ' dabei Steuerelemente verlassen !!! *** DoCmd.RunCommand acCmdSelectRecord Dim rst1 As Recordset Dim i As Long Dim n As Long Set rst1 = CurrentDb.OpenRecordset(Form_1.RecordSource, dbOpenSnapshot) Do Until rst1.EOF rst1.MoveNext Loop i = rst1.RecordCount If i = 0 Then rst1.Close Set rst1 = Nothing Exit Function End If If i < SatzAnzahl Then rst1.Close Set rst1 = Nothing ' Fehler 2105, wenn Form keine neuen erlaubt !!! DoCmd.GoToRecord acForm, Form_1.Name, acNewRec Exit Function End If rst1.Close Set rst1 = Nothing DoCmd.GoToRecord acForm, Form_1.Name, acLast For n = 1 To SatzAnzahl - 1 DoCmd.GoToRecord acForm, Form_1.Name, acPrevious Next n Form_1.Repaint ' notwendig ? If Form_1.AllowAdditions = True Then ' Fehler 2105, wenn Form keine neuen erlaubt !!! DoCmd.GoToRecord acForm, Form_1.Name, acNewRec Else ' neuer geht nicht, dafür letzten Satz ! DoCmd.GoToRecord acForm, Form_1.Name, acLast End If Form_1.Repaint ' notwendig ? Exit Function ERR_01: If Err.Number = 2105 Then ' neuer geht nicht, dafür letzten Satz ! DoCmd.GoToRecord acForm, Form_1.Name, acLast Else MsgBox "ZeigeDatensätze(Form_1 As Form, SatzAnzahl As Integer): " & _ CStr(Err.Number) & " " & Err.Description End If End Function Public Function AufrufZeigeDatensätze() ' Das Bild so verschieben, dass der Bildschirm ausgefüllt wird Call ZeigeDatensätze(Forms![For_HauptFormular], 7) End Function ' Beispiel-Aufruf Beim Laden eines Formulars: Private Sub Form_Load() On Error GoTo ERR_01 ' ... ' ... DoCmd.GoToRecord acDataForm, Me.Name, acLast Call ZeigeDatensätze(Me, 9) ' 2005-05-10 Bildschirm mehr ausfüllen ! ' ... ' ... ' Fenster positionieren ' DoCmd.MoveSize 2 * 567, 3 * 567, 24 * 567, 15 * 567 Exit Sub ERR_01: MsgBox Me.Name & ".Form_Load(): " & Err.Number & " " & Err.Description End Sub Dieser Tipp wurde bereits 12.824 mal aufgerufen. Voriger Tipp | Zufälliger Tipp | Nächster Tipp
Anzeige
Diesen und auch alle anderen Tipps & Tricks finden Sie auch auf unserer aktuellen vb@rchiv Vol.6 Ein absolutes Muss - Geballtes Wissen aus mehr als 8 Jahren vb@rchiv! - nahezu alle Tipps & Tricks und Workshops mit Beispielprojekten - Symbol-Galerie mit mehr als 3.200 Icons im modernen Look Weitere Infos - 4 Entwickler-Vollversionen (u.a. sevFTP für .NET), Online-Update-Funktion u.v.m. |
vb@rchiv CD Vol.6 Geballtes Wissen aus mehr als 8 Jahren vb@rchiv! Online-Update-Funktion Entwickler-Vollversionen u.v.m. Tipp des Monats Mai 2024 Hermann Röttger Wochentage eines Datumsbereichs ermitteln Wochentage eines Datumsbereichs ermitteln, optional mit Feiertagsberechnung sevAniGif (VB/VBA) Anzeigen von animierten GIF-Dateien Ab sofort lassen sich auch unter VB6 und VBA (Access ab Version 2000) animierte GIF-Grafiken anzeigen und abspielen, die entweder lokal auf dem System oder auf einem Webserver gespeichert sind. |
||||||||||||||||
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein. |