|
|
|
| Est' odna funkziya, kotoraya sapolnyaet ot4et, no sdelana ona v Access 2.0, ninkak ne polu4aetsa peredelat' ee v 2000
Dim dy As Dynaset, db As Database
' Warnmeldungen ausschalten
DoCmd.SetWarnings False
' Löschen der Tabelle Etikett, um ein leere Tabelle zu erhalten
DoCmd.RunSQL "Delete from Etikett;"
' Variablen initialisieren
Set db = CurrentDb()
Set dy = db.CreateDynaset("Etikett")
|
"Etikett" - eto ot4et, kotorii zapolnyaetsa avtomatom
vot tut vsya funkziya
Function DruckEtikett()
' Deklarierung der notwendigen Variablen Teil I
Dim I As Integer, Start
' Öffnet das Formular zur Auswahl, welches Etikett zu bedrucken ist.
DoCmd.OpenForm "Auswahl zu bedruckendes Etikett", A_NORMAL, , , , A_DIALOG
If IstGeladen("Auswahl zu bedruckendes Etikett") Then
Start = Forms![Auswahl zu bedruckendes Etikett]!OptionGewünschtesEtikett
Else
Exit Function
End If
Start = CDbl(Start)
I = 1
'Fehlerbehandlungsroutine einschalten
On Error GoTo EtikettSpezial_Err
' Deklarierung der notwendigen Variablen Teil II
Dim dy As Dynaset, db As Database
' Warnmeldungen ausschalten
DoCmd.SetWarnings False
' Löschen der Tabelle Etikett, um ein leere Tabelle zu erhalten
DoCmd.RunSQL "Delete from Etikett;"
' Variablen initialisieren
Set db = CurrentDb()
Set dy = db.CreateDynaset("Etikett")
' Beginn der Transaktion
BeginTrans
' Schreiben von leeren Datensätzen für die nicht benötigten Etiketten
Do Until I = Start
dy.AddNew
dy.Update
I = I + 1
Loop
' Schreiben des zu bedruckenden Etikettes in die Tabelle
dy.AddNew
dy![Firma 1] = Forms.[Etikett Spezial]![Firma 1]
dy![Firma 2] = Forms.[Etikett Spezial]![Firma 2]
dy![Abteilung] = Forms.[Etikett Spezial]![Abteilung]
Select Case Forms.[Etikett Spezial]![Geschlecht]
Case "Firma"
dy![Geschlecht] = ""
Case "Frau"
dy![Geschlecht] = "z. Hd. Frau"
Case "Herr"
dy![Geschlecht] = "z. Hd. Herrn"
End Select
dy![Titel] = Forms.[Etikett Spezial]![Titel]
dy![Vorname] = Forms.[Etikett Spezial]![Vorname]
dy![Nachname] = Forms.[Etikett Spezial]![Nachname]
dy![Straße] = Forms.[Etikett Spezial]![Straße]
dy![Land] = UCase(Forms.[Etikett Spezial]![Land]) & "-"
dy![Plz] = Forms.[Etikett Spezial]![Plz]
dy![Stadt] = Forms.[Etikett Spezial]![Stadt]
dy.Update
CommitTrans
' Schließen der Dynaset-Variablen
dy.Close
' Schließen der an der Auswahl beteiligten Formulare
DoCmd.Close A_FORM, "Etikett Spezial"
DoCmd.Close A_FORM, "Auswahl zu bedruckendes Etikett"
' Aufruf des Berichtes, um das Etikett zu bedrucken
DoCmd.OpenReport "Etikett", A_PREVIEW
EtikettSpezial_Exit:
Exit Function
EtikettSpezial_Err:
StdErrProc
Resume EtikettSpezial_Exit
End Function
|
| |
|
| |
|
|
|
|
Function DruckEtikett()
' Deklarierung der notwendigen Variablen Teil I
Dim I As Integer, Start
' Öffnet das Formular zur Auswahl, welches Etikett zu bedrucken ist.
DoCmd.OpenForm "Auswahl zu bedruckendes Etikett", A_NORMAL, , , , A_DIALOG
If IstGeladen("Auswahl zu bedruckendes Etikett") Then
Start = Forms![Auswahl zu bedruckendes Etikett]!OptionGewünschtesEtikett
Else
Exit Function
End If
Start = CDbl(Start)
I = 1
'Fehlerbehandlungsroutine einschalten
On Error GoTo EtikettSpezial_Err
' Deklarierung der notwendigen Variablen Teil II
Dim dy As adodb.Recordset
' Warnmeldungen ausschalten
DoCmd.SetWarnings False
' Löschen der Tabelle Etikett, um ein leere Tabelle zu erhalten
DoCmd.RunSQL "Delete from Etikett;"
' Variablen initialisieren
Set dy = new adodb.Recordset
dy.open "select * from Etikett", currentproject.connection
' Beginn der Transaktion
' BeginTrans
' Schreiben von leeren Datensätzen für die nicht benötigten Etiketten
Do Until I = Start
dy.AddNew
dy.Update
I = I + 1
Loop
' Schreiben des zu bedruckenden Etikettes in die Tabelle
dy.AddNew
dy![Firma 1] = Forms.[Etikett Spezial]![Firma 1]
dy![Firma 2] = Forms.[Etikett Spezial]![Firma 2]
dy![Abteilung] = Forms.[Etikett Spezial]![Abteilung]
Select Case Forms.[Etikett Spezial]![Geschlecht]
Case "Firma"
dy![Geschlecht] = ""
Case "Frau"
dy![Geschlecht] = "z. Hd. Frau"
Case "Herr"
dy![Geschlecht] = "z. Hd. Herrn"
End Select
dy![Titel] = Forms.[Etikett Spezial]![Titel]
dy![Vorname] = Forms.[Etikett Spezial]![Vorname]
dy![Nachname] = Forms.[Etikett Spezial]![Nachname]
dy![Straße] = Forms.[Etikett Spezial]![Straße]
dy![Land] = UCase(Forms.[Etikett Spezial]![Land]) & "-"
dy![Plz] = Forms.[Etikett Spezial]![Plz]
dy![Stadt] = Forms.[Etikett Spezial]![Stadt]
dy.Update
' CommitTrans
' Schließen der Dynaset-Variablen
dy.Close
' Schließen der an der Auswahl beteiligten Formulare
DoCmd.Close A_FORM, "Etikett Spezial"
DoCmd.Close A_FORM, "Auswahl zu bedruckendes Etikett"
' Aufruf des Berichtes, um das Etikett zu bedrucken
DoCmd.OpenReport "Etikett", A_PREVIEW
EtikettSpezial_Exit:
Exit Function
EtikettSpezial_Err:
StdErrProc
Resume EtikettSpezial_Exit
End Function
|
| |
|
| |
|
|
|
| Po4emu to Access pri vipolnenii etoi funkzii pereskakivaet sobstvenno telo funkzii i srasu perehodit na okon4anie, kak resultat ot4et ne otkrivaetsa. Ne podskazhite kakie opzii ADO nizhno podklu4it' ?
Podklu4eni dlya ADO:
MS ActiveX Data Objects Recordset 2.8 Library
MS ActiveX Data Objects 2.8 Library
MS ActiveX Data Objects (Multi-dimensional) 2.8 Library | |
|
| |
|
|
|
| достаточно
MS ActiveX Data Objects 2.8 Library
что значит перескакивает? с какой строки? | |
|
| |
|
|
|
| Posle etogo mesta
DoCmd.OpenForm "Auswahl zu bedruckendes Etikett", A_NORMAL, , , , A_DIALOG
If IstGeladen("Auswahl zu bedruckendes Etikett") Then
Start = Forms![Auswahl zu bedruckendes Etikett]!OptionGewünschtesEtikett
Else
Exit Function
End If
|
vipolnyaetsafunkziya
Function IstGeladen(MeinFormularname) ' if loaded
Dim I
IstGeladen = False
For I = 0 To Forms.Count - 1
If Forms(I).FormName = MeinFormularname Then
IstGeladen = True
Exit Function 'Schleife nach Auffinden des Formulars verlassen.
End If
Next
End Function
|
perehodit srasu na
'Fehlerbehandlungsroutine einschalten
On Error GoTo EtikettSpezial_Err
|
hotya forma sagruzhena, ili nuzhno suda vpisat' imya konkretno formi? (naskol'ko ya ponimau eto prototip funkzii) | |
|
| |
|
|
|
| если переходит на On Error GoTo EtikettSpezial_Err то надо посмотреть что за ошибка
возможно имя формы написано не правильно или размер букв другой | |
|
| |
|
|
|
|
| imena vse proveril i skopiroval v podprogrammu, kogda ya po shagam proveryau programmu, prosto pereskakivaet bes vsyakih oshibok. Nikakih soobshenii ne vivodit. | |
|
| |
|
|
|
| что возвращает функция:
IstGeladen("Auswahl zu bedruckendes Etikett") | |
|
| |
|
|
|
| "True" i perehodit na "Start = Forms!Auswahl_zu_bedruckendes_Etikett!OptionGewünschtesEtikett" i dalee do "On Error GoTo EtikettSpezial_Err" | |
|
| |
|
|
|
| поставьте перед строкой
StdErrProc
сразу после строки
On Error GoTo EtikettSpezial_Err
строку:
msgbox Err.Description & " (" & Err.Number & ")"
что говорит? | |
|
| |
|
|
|
| Esli sapuskau programmu - govorit 4to sintaksi4eskaya ishibka, kogda idu po F8 - govorit 4to "StdErrProc " ne opredelena. | |
|
| |
|
|
|
| Закомментируйте уберите строку
StdErrProc | |
|
| |
|
|
|
|
| происходи ошибка при получении значениея
Start = Forms![Auswahl zu bedruckendes Etikett]!OptionGew....
посмотрите, что в этой форме, что за поле... или это функция.
и еще откомпилируйте проект | |
|
| |
|
|
|
| U menya bilo podosrenie na etu stroku.
Est' forma "Auswahl zu bedruckendes Etikett" , v etoi forme est' neskol'ko viklu4atelei, kotorie opredelyaut mesto raspe4ativaemoi etiketki naliste i u kazhdogo est' Optionvalue 1,2...,
vot tut eta opziya opredelyaetsa
Start = CDbl(Start)
I = 1
|
"OptionGewünschtesEtikett" eto kak ras sovokupnost' vseh pereklu4atelei.
Project kompiliruetsa bes oshibok. | |
|
| |