Juli 14, 2020, 01:16:59

Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!


Automatische DS Bearbeitung

Begonnen von Bernie110, November 17, 2010, 17:08:16

⏪ vorheriges - nächstes ⏩

Bernie110

Hallo Zusammen,

ich habe ein Formular " Frm_Daten_Import _Check , das auf eine Abfrage basiert  "Qry_Daten_Import ", welches beim Ereignis "Beim Anzeigen" Daten ändert oder ergänzt und durch eine Speicher Taste DATEN überprüft.

Nur leider muss der User immer wieder Speichern und dann die Goto Next Record-Taste  drücken.

Und das einige Male....

ich hab schon etwas mit der Timerfunktion rumgespielt es aber nicht hinbekommen..
Wie stellt man den Ablauf automatisch dar ?

Also ich möchte das das Fromular angezeigt wird  und folgender Code durchgeführt wird ...

' CHECK ABSENDER
' -------------------------------------------
If IsNull(Me.ABG_FirmenName1) Then
MsgBox " Sie müssen einen Absender eingeben!!", vbInformation
Me.ABG_FirmenName1.SetFocus
Exit Sub
End If

If IsNull(Me.ABG_Land) Then
MsgBox " Sie müssen ein Abgangsland eingeben!!", vbInformation
Me.ABG_Land.SetFocus
Exit Sub
End If

If IsNull(Me.ABG_Plz) Then
MsgBox " Sie müssen eine Abgangspostleitzahl eingeben!!", vbInformation
Me.ABG_Plz.SetFocus
Exit Sub
End If

If IsNull(Me.ABG_Ort) Then
MsgBox " Sie müssen einen Abgangsort eingeben!!", vbInformation
Me.ABG_Ort.SetFocus
Exit Sub
End If


' CHECK EMPFÄNGER
' -------------------------------------------
If IsNull(Me.EMPF_FirmenName1) Then
MsgBox " Sie müssen einen Empfänger eingeben!!", vbInformation
Me.EMPF_FirmenName1.SetFocus
Exit Sub
End If

If IsNull(Me.EMPF_Land) Then
MsgBox " Sie müssen ein Empfangsland eingeben!!", vbInformation
Me.EMPF_Land.SetFocus
Exit Sub
End If

If IsNull(Me.EMPF_Plz) Then
MsgBox " Sie müssen eine Empfangspostleitzahl eingeben!!", vbInformation
Me.EMPF_Plz.SetFocus
Exit Sub
End If

If IsNull(Me.EMPF_Ort) Then
MsgBox " Sie müssen einen Empfangsort eingeben!!", vbInformation
Me.EMPF_Ort.SetFocus
Exit Sub
End If



' CHECK Ladedatum
' -------------------------------------------

If IsNull(Me.Ladedatum) Then
MsgBox " Sie müssen ein Ladedatum eingeben!!", vbInformation
Me.Ladedatum.SetFocus
Exit Sub
End If

If IsNull(Me.EntLadedatum) Then
MsgBox " Sie müssen ein Entladedatum eingeben!!", vbInformation
Me.EntLadedatum.SetFocus
Exit Sub
End If


' CHECK Auftragsnummer
' -------------------------------------------
If IsNull(Me.Auftragsnummer) Or Me.Auftragsnummer = 0 Then
MsgBox " Sie müssen eine Auftragsnummer eingeben!!", vbInformation
Me.Auftragsnummer.SetFocus
Exit Sub
End If

' SPEICHERN
'--------------------------------------------------------
On Error GoTo Err_BT_Speichern_Click

strMsg = "Möchten Sie diesen Auftrag speichern? "
If MsgBox(strMsg, vbYesNo + vbQuestion, "Abbrechen:") = vbYes Then
Me.Geändert_am = Now
Me.Geändert_von = Me.CurrentUser
Me.BT_bearbeiten.Enabled = True
Me.Import_Status = 1
Me.STATUS_SNDG = 2
Me.TOURNR = Null

If Me.LagerCode = "FK" Then
Me.LadePos = 1
Else
Me.LadePos = Null
End If

'RunCommand acCmdSaveRecord
Me.AllowAdditions = False
Else
DoCmd.RunCommand acCmdUndo
Me.AllowAdditions = True
End If


Exit_BT_Speichern_Click:
    Exit Sub

Err_BT_Speichern_Click:
    MsgBox Err.Description
    Resume Exit_BT_Speichern_Click
End If


Wenn alle Kriterien erfüllt wurden ...soll das pop_Up "strMsg = "Möchten Sie diesen Auftrag speichern? "
" erscheinen..drückt der User dann "JA" soll automatisch der nexte Datensatz kommen...

und zwar solange bis der letzte DS erreicht wurde.. dann soll nach dem POPUP"strMsg = "Möchten Sie diesen Auftrag speichern? "
das Formular geschlossen werden...


Möglich ? wenn ja wie ?

Danke für eure Antworten...
Hoffe ich hab meine Frage dieses Mal ordentlich formuliert :-)

Gruss Benrie

DF6GL

Hallo,

Du willst wirklich die angezeigten DS automatisch bis zum Ende durchlaufen?

.
.
.
Me.LadePos = Null
End If
'RunCommand acCmdSaveRecord

Docmd.Gotorecord , acNext

Me.AllowAdditions = False
.
.
und über den Error-Handler prüfst Du die Fehlersituation (die Fehlernummer) , die auftritt, wenn der letzte Record überschritten werden würde und reagierst mit dem Schliessen des Forms..


Bernie110

Hallo Franz,

ja das möchte ich. spricht dagegen was ?

"und über den Error-Handler prüfst Du die Fehlersituation (die Fehlernummer) , die auftritt, wenn der letzte Record überschritten werden würde und reagierst mit dem Schliessen des Forms.."

ok wie meinst du das ?
Ich weiss nicht wie ich prüfen kann ob der letzte datensatz erreicht wurde  ???

gruss Bernie

DF6GL

Hallo,

naja, mir kommt es halt exotisch vor...

Errorhandler:

wenn "hinter" den letzten DS fährst, tritt ein Fehler mit einer bestimmten Nummer auf, die Du  mit IF abfragen kannst.


Sub DeineSub()
On Error goto MyErr
.
.
.


Exit_Sub:
Exit Sub

MyErr:

If Err.Number =xxxx Then

Docmd.close acForm, Me.Name
Else
Msgbox Err.numner & "" & Err.Description
End if

Resume Exit_Sub
End Sub

Bernie110

Ok funktioniert so wie ich es mir vorstelle danke !  ;)