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
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
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
Hallo,
Du mußt halt die Fehlermeldung ernst nehmen...
Die Prozedur "Print_Click()" gibt es ja nun auch zweimal...
Wie kann ich das dann ändern? Weil es soll ja zwei Print-Optionen geben: Einmal Kompletter Datensatz und einmal Formular
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.
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
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?? :(
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.
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.
Dann versuche mal eine vorherige Sicherheitskopie zu starten.
Ich hoffe du hast an Kopien gedacht?
Gruß
T.
Hallo,
möglicherweise hilft diese Methode:
neue leere DB anlegen und dort alles(!) aus der alten importieren(!).
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.
;D ;D ;D
:D ;D :)