Textfeld aktualisieren

28/11/2007 - 21:49 von Andreas Kugel | Report spam
Hallo,
zur Artikelstammdatenanlage verwende ich ein Formular.
Damit eine fortlaufende Nummer erzeugt wird und als Làufer hinter die
jeweilige Artikelnummer geschrieben wird,
verwende ich ein SQL-Abfrage, die den größten Wert ermittelt und dann mit 1
aufaddiert.

Private Sub Form_Load()
Dim sqlstr As String
Dim db As DAO.Database
Dim rs As DAO.Recordset
'Ermittelt die größte Làuferzahl
sqlstr = "SELECT Max(qry_Zàhler.Zàhler) AS Zàhler FROM qry_Zàhler;"

Set rs = CurrentDb.OpenRecordset(sqlstr)
Zàhler = rs!Zàhler
Zàhler = Zàhler + 1
End Sub


Private Sub Speichern_Click()
On Error GoTo Err_Speichern_Click
DoCmd.DoMenuItem acFormBar, acRecordsMenu, acSaveRecord, , acMenuVer70
DoCmd.GoToRecord , , acNewRec
Me.Refresh
Me.Requery
Exit_Speichern_Click:
Exit Sub
Err_Speichern_Click:
MsgBox Err.Description
Resume Exit_Speichern_Click
End Sub

Wie bekomme ich es hin, das meine Abfrage nach dem Speichern, aktualisiert
wird.
Gruß
Andreas
 

Lesen sie die antworten

#1 Peter Doering
29/11/2007 - 03:01 | Warnen spam
Hallo,

Andreas Kugel wrote:

zur Artikelstammdatenanlage verwende ich ein Formular.
Damit eine fortlaufende Nummer erzeugt wird und als Làufer hinter die
jeweilige Artikelnummer geschrieben wird,
verwende ich ein SQL-Abfrage, die den größten Wert ermittelt und dann mit 1
aufaddiert.

Private Sub Form_Load()
Dim sqlstr As String
Dim db As DAO.Database
Dim rs As DAO.Recordset
'Ermittelt die größte Làuferzahl
sqlstr = "SELECT Max(qry_Zàhler.Zàhler) AS Zàhler FROM qry_Zàhler;"

Set rs = CurrentDb.OpenRecordset(sqlstr)
Zàhler = rs!Zàhler
Zàhler = Zàhler + 1
End Sub


Private Sub Speichern_Click()
On Error GoTo Err_Speichern_Click
DoCmd.DoMenuItem acFormBar, acRecordsMenu, acSaveRecord, , acMenuVer70
DoCmd.GoToRecord , , acNewRec
Me.Refresh
Me.Requery
Exit_Speichern_Click:
Exit Sub
Err_Speichern_Click:
MsgBox Err.Description
Resume Exit_Speichern_Click
End Sub

Wie bekomme ich es hin, das meine Abfrage nach dem Speichern, aktualisiert
wird.



sqlstr = "SELECT TOP 1 Zàhler FROM qry_Zàhler ORDER BY Zàhler DESC;"

Set rs = CurrentDb.OpenRecordset(sqlstr)
Zàhler = rs!Zàhler
Zàhler = Zàhler + 1



With rs
.Edit
!Zàhler = Zàhler
.Update
.Close
End With

Set rs = Nothing

Setzt natuerlich voraus, dass qry_Zàhler aktualisierbar ist.

Insgesamt ist die Vorgehensweise etwas wackelig. Wie z.B. stellst du
sicher, dass keine Zaehler verloren gehen? Normalerweise ermittelt man den
Zaehler unmittelbar bevor man ihn braucht, und wenn kein User mehr
dazwischenfunken kann, nicht zwischen Form_Load und Button_Click.

Gruss - Peter

Ich beantworte keine Fragen per Email.
Mitglied im http://www.dbdev.org
FAQ: http://www.donkarl.com

Ähnliche fragen