Neuigkeiten:

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

Mobiles Hauptmenü

Buttons funktionieren nicht

Begonnen von CliT, Juli 09, 2010, 14:59:53

⏪ vorheriges - nächstes ⏩

CliT

Hi an Alle,

ich habe auf Arbeit eine Datenbank erstellt und will nun im Formular Buttons einfügen, der verschiedene Aktionen beinhalten.

Beim Ausprobieren jedoch, wurde mir immer ein Fehler angezeigt und ich weiß nicht woran es liegt... und mit Makros kenne ich mich auch nicht aus. Könnt Ihr mir weiterhelfen.

Es geht um folgende Befehle:


  • Save
  • Create New Blank
  • Print Actual Blank
  • Print Whole Blank Database
  • Export to Excel
  • Leave Database

Als Fehler kommt immer, dass ich den Namen nicht eindeutig bezeichnet habe (Mehrdeutiger Name: Print_Click).

Grüße und Danke für Eure Hilfe
Rico



database

Hallo,

ZitatEs geht um folgende Befehle

Da es sich dabei um keine VBA-Befehle handelt sondern um Dinge, die deiner eigenen Kreativität entsprungen sind solltest du vielleicht deinen Code hier posten.
Ansonsten wirds in Richtung Vermutung und Wahrsagerei gehen.

Zitat•Leave Database
Hierbei kann ich dir ohne Kartenlegen einen Tip geben: ;D

DoCmd.Quit

Grüße
Peter

CliT

Also, der Code lautet (ich habe da nichts drin rumgeschrieben, lediglich die Buttons ins Formular eingepflegt)

Option Compare Database

Private Sub Save_Click()
On Error GoTo Err_Save_Click


    DoCmd.RunCommand acCmdSaveRecord

Exit_Save_Click:
    Exit Sub

Err_Save_Click:
    MsgBox Err.Description
    Resume Exit_Save_Click
   
End Sub
Private Sub Print_Click()
On Error GoTo Err_Print_Click


    DoCmd.RunCommand acCmdSelectRecord
    DoCmd.PrintOut acSelection

Exit_Print_Click:
    Exit Sub

Err_Print_Click:
    MsgBox Err.Description
    Resume Exit_Print_Click
   
End Sub
Private Sub Abfrage_Click()
On Error GoTo Err_Abfrage_Click

    Dim stDocName As String

    stDocName = "ACT_Activity_Summary"
    DoCmd.OpenQuery stDocName, acNormal, acEdit

Exit_Abfrage_Click:
    Exit Sub

Err_Abfrage_Click:
    MsgBox Err.Description
    Resume Exit_Abfrage_Click
   
End Sub
Private Sub Print_Click()
On Error GoTo Err_Print_Click

    Dim stDocName As String
    Dim MyForm As Form

    stDocName = "Data Entry1"
    Set MyForm = Screen.ActiveForm
    DoCmd.SelectObject acForm, stDocName, True
    DoCmd.PrintOut
    DoCmd.SelectObject acForm, MyForm.Name, False

Exit_Print_Click:
    Exit Sub

Err_Print_Click:
    MsgBox Err.Description
    Resume Exit_Print_Click
   
End Sub
Private Sub print_blank_Click()
On Error GoTo Err_print_blank_Click

    Dim stDocName As String
    Dim MyForm As Form

    stDocName = "Data Entry1"
    Set MyForm = Screen.ActiveForm
    DoCmd.SelectObject acForm, stDocName, True
    DoCmd.PrintOut
    DoCmd.SelectObject acForm, MyForm.Name, False

Exit_print_blank_Click:
    Exit Sub

Err_print_blank_Click:
    MsgBox Err.Description
    Resume Exit_print_blank_Click
   
End Sub
Private Sub New_Data_Entry_Click()
On Error GoTo Err_New_Data_Entry_Click


    DoCmd.GoToRecord , , acNewRec

Exit_New_Data_Entry_Click:
    Exit Sub

Err_New_Data_Entry_Click:
    MsgBox Err.Description
    Resume Exit_New_Data_Entry_Click
   
End Sub
Private Sub Save_Click_Click()
On Error GoTo Err_Save_Click_Click


    DoCmd.DoMenuItem acFormBar, acRecordsMenu, acSaveRecord, , acMenuVer70

Exit_Save_Click_Click:
    Exit Sub

Err_Save_Click_Click:
    MsgBox Err.Description
    Resume Exit_Save_Click_Click
   
End Sub
Private Sub Print_Actual_Blank_Click()
On Error GoTo Err_Print_Actual_Blank_Click


    DoCmd.PrintOut

Exit_Print_Actual_Blank_Click:
    Exit Sub

Err_Print_Actual_Blank_Click:
    MsgBox Err.Description
    Resume Exit_Print_Actual_Blank_Click
   
End Sub
Private Sub Print_Whole_Blank_Database_Click()
On Error GoTo Err_Print_Whole_Blank_Database_Click

    Dim stDocName As String
    Dim MyForm As Form

    stDocName = "Data Entry1"
    Set MyForm = Screen.ActiveForm
    DoCmd.SelectObject acForm, stDocName, True
    DoCmd.PrintOut
    DoCmd.SelectObject acForm, MyForm.Name, False

Exit_Print_Whole_Blank_Database_Click:
    Exit Sub

Err_Print_Whole_Blank_Database_Click:
    MsgBox Err.Description
    Resume Exit_Print_Whole_Blank_Database_Click
   
End Sub
Private Sub Create_New_Blank_Click()
On Error GoTo Err_Create_New_Blank_Click


    DoCmd.GoToRecord , , acNewRec

Exit_Create_New_Blank_Click:
    Exit Sub

Err_Create_New_Blank_Click:
    MsgBox Err.Description
    Resume Exit_Create_New_Blank_Click
   
End Sub
Private Sub Export_to_Excel_Click()
On Error GoTo Err_Export_to_Excel_Click

    Dim oApp As Object

    Set oApp = CreateObject("Excel.Application")
    oApp.Visible = True
    'Only XL 97 supports UserControl Property
    On Error Resume Next
    oApp.UserControl = True

Exit_Export_to_Excel_Click:
    Exit Sub

Err_Export_to_Excel_Click:
    MsgBox Err.Description
    Resume Exit_Export_to_Excel_Click
   
End Sub
Private Sub Leave_Database_Click()
On Error GoTo Err_Leave_Database_Click


    DoCmd.Close

Exit_Leave_Database_Click:
    Exit Sub

Err_Leave_Database_Click:
    MsgBox Err.Description
    Resume Exit_Leave_Database_Click
   
End Sub

DF6GL

Hallo,

Du mußt halt die Fehlermeldung ernst nehmen...

Die Prozedur "Print_Click()"  gibt es ja nun auch zweimal...

CliT

Wie kann ich das dann ändern? Weil es soll ja zwei Print-Optionen geben: Einmal Kompletter Datensatz und einmal Formular

DF6GL

Hallo,

die Prozedurnamen richten sich nach den Namen der Schaltflächen, die diese Ereignisprozeduren aufrufen...

Benenne also die einzelnen Schaltflächen eindeutig (und damit unterschiedlich).   Vermeide auch DRINGEND Leer- und Sonderzeichen in den Namen für die Steuerlemente. Vermeide ebenso reservierte Wörter als Namen (--->"Print" !!) .

Lösche vorher die doppelte Prozedur. Wenn die Namen der Schaltflächen geändert werden, müssen:

a) die Ereignisprozeduren neu erstellt werden (wobei Du vermutlich den Assistenen benutzt)
oder
b) die Namen der Prozeduren genau an die geänderten Namen angepaßt werden. Dabei ist darauf zu achten, dass in der Ereigniseigenschaft "Beim Klicken" der jeweiligen Schaltflächen  [Ereignisprozedur] drinsteht.

database

Hallo,

abgesehen von den oben angesprochenen Änderungen:
Private Sub Leave_Database_Click()
On Error GoTo Err_Leave_Database_Click

    DoCmd.Close

Exit_Leave_Database_Click:
    Exit Sub

Err_Leave_Database_Click:
    MsgBox Err.Description
    Resume Exit_Leave_Database_Click
   
End Sub


...damit wird die Datenbank nicht verlassen - wie es der Name des zugrundeliegenden Buttons vermuten ließe-
Mit DoCmd.Close schließt du 'lediglich' das aktuelle Formular.

Mit DoCmd.Quit würdest du deine Datei schließen und Access beenden

CliT

Ah. Okay. Mein Fehler. Das Formular soll auch nur geschlossen werden.

Jetzt hab ich allerdings ein neues Problem: Mein Formular lässt sich nicht mehr öffnen. Ich mach einen doppelklick auf mein Formular zum Öffnen, aber es reagiert nicht. Es kommt auch keine Fehlermeldung.

Was nun?? :(

T417

Bei mir ist das dann der Fall, wenn ich mein Formular überladen habe. (zuviele Textfelder, Kombifelder etc)
Irgendwie macht dann der Speicher schlapp.

Versuche es im Entwurfsmodus zu öffnen und zu entschlaken.

Gruß
T.
Arbeite normalerweise mit Access 2000/2003
In letzter Zeit häufiger mit Access 2007

Sowohl auf WinXP als auch auf Win7

CliT

Hey. Danke für die Antwort, aber selbst im Entw.-Modus lässt er sich nicht öffnen.

Und das Formular ist eigtl. komplett eine Tabelle nur halt benutzerfreundlich aufgearbeitet.

T417

Dann versuche mal eine vorherige Sicherheitskopie zu starten.
Ich hoffe du hast an Kopien gedacht?

Gruß
T.
Arbeite normalerweise mit Access 2000/2003
In letzter Zeit häufiger mit Access 2007

Sowohl auf WinXP als auch auf Win7

DF6GL

Hallo,

möglicherweise hilft diese Methode:

neue leere DB anlegen und dort alles(!) aus der alten importieren(!).


database

Hallo,

klingt mir fast als wäre das Ding so richtig schön abgeschossen.

KANNST auch versuchen eine neue *.mdb anzulegen und die einzelnen Teile (Datenbankobjekte) zu importieren.

database