Форум:  MS ACCESS Болталка VB VBA MS Office
Новые сообщения:  18 135 19 26

Форум: MS ACCESS

Вопросы связанные с MS ACCESS

Обновить визитку
Участники «Online»
Все участники

 

Выбрать другой форум

Доброго времени суток, час! (личные сообщения)

вид форума:
Линейный форум Структурный форум

тема: Peredelat' peremennuu is Access 2.0 v 2000
 
 автор: folkner   (09.10.2006 в 15:29)   личное сообщение
 
 

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

  Ответить  
 
 автор: osmor   (09.10.2006 в 16:16)   личное сообщение
 
 


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 

  Ответить  
 
 автор: folkner   (11.10.2006 в 17:07)   личное сообщение
 
 

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

  Ответить  
 
 автор: osmor   (11.10.2006 в 17:12)   личное сообщение
 
 

достаточно
MS ActiveX Data Objects 2.8 Library
что значит перескакивает? с какой строки?

  Ответить  
 
 автор: folkner   (11.10.2006 в 17:30)   личное сообщение
 
 

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)

  Ответить  
 
 автор: osmor   (11.10.2006 в 17:38)   личное сообщение
 
 

если переходит на On Error GoTo EtikettSpezial_Err то надо посмотреть что за ошибка
возможно имя формы написано не правильно или размер букв другой

  Ответить  
 
 автор: folkner   (11.10.2006 в 17:43)   личное сообщение
 
 

shas posmotru

  Ответить  
 
 автор: folkner   (16.10.2006 в 15:42)   личное сообщение
 
 

imena vse proveril i skopiroval v podprogrammu, kogda ya po shagam proveryau programmu, prosto pereskakivaet bes vsyakih oshibok. Nikakih soobshenii ne vivodit.

  Ответить  
 
 автор: osmor   (16.10.2006 в 15:44)   личное сообщение
 
 

что возвращает функция:
IstGeladen("Auswahl zu bedruckendes Etikett")

  Ответить  
 
 автор: folkner   (16.10.2006 в 15:49)   личное сообщение
 
 

"True" i perehodit na "Start = Forms!Auswahl_zu_bedruckendes_Etikett!OptionGewünschtesEtikett" i dalee do "On Error GoTo EtikettSpezial_Err"

  Ответить  
 
 автор: osmor   (16.10.2006 в 15:58)   личное сообщение
 
 

поставьте перед строкой
StdErrProc
сразу после строки
On Error GoTo EtikettSpezial_Err
строку:

msgbox Err.Description & " (" & Err.Number & ")"

что говорит?

  Ответить  
 
 автор: folkner   (16.10.2006 в 16:06)   личное сообщение
 
 

Esli sapuskau programmu - govorit 4to sintaksi4eskaya ishibka, kogda idu po F8 - govorit 4to "StdErrProc " ne opredelena.

  Ответить  
 
 автор: osmor   (16.10.2006 в 16:10)   личное сообщение
 
 

Закомментируйте уберите строку
StdErrProc

  Ответить  
 
 автор: folkner   (16.10.2006 в 16:13)   личное сообщение
 
 

Vidaet soobshenie "(0)"

  Ответить  
 
 автор: osmor   (16.10.2006 в 16:38)   личное сообщение
 
 

происходи ошибка при получении значениея
Start = Forms![Auswahl zu bedruckendes Etikett]!OptionGew....
посмотрите, что в этой форме, что за поле... или это функция.
и еще откомпилируйте проект

  Ответить  
 
 автор: folkner   (16.10.2006 в 16:48)   личное сообщение
 
 

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.

  Ответить