|
|
|
|
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. |
|
|
| |