- #1
W
wolf33
Bekanntes Mitglied
Themenersteller
- Dabei seit
- 09.08.2007
- Beiträge
- 78
- Reaktionspunkte
- 0
- Ort
- Baden / Schweiz
Hallo ACCESS-Gemeinde
Ich hatte auf meinem alten XP-System Vaio VGC-V2m eine ziemlich komplexe Anwendung mit Off. prof. for XP de als Update auf Off. prof. 1997 de entwickelt. Lief perfect bis der Vaio schlagartig das Zeitliche segnete.
Auf dem neuen HP-Notebook mit Vista konnte ich Off. prof. 1997 de nicht mehr installieren. Vermutlich wegen der Vorinstallation der 60-Tage Version von Office home for Student 2007, die sich leider nicht Deinstallieren lässt. Ich habe aber noch eine vollständige englische Version Off. prof. for XP with Frontpage (2002) in petto, die ich problemlos installieren und für kleinere Sachen benützen konnte. Meine grosse Anwendung wurde mit Accessruntime 2007 de zusammengelinkt und an Anwender ohne MS-Office-Lizenz verteilt.
Nun musste ich einige Kleinigkeiten im VBA-Code ändern. Sie wurden vom Compiler problemlos als korrekt akzeptiert, aber seit dem Speichern der DB ist der Teufel los. Der Versuch, die Anwendung zu starten, führt schon vor dem/beim Öffnen des Eingangs-Form zu folgender kryptischen FM:
The expression on Open you entered as the event property setting produced the following error. Object or class does not support the set of events.
*The expression may not result in the name of an macro, the name of an user-defined function, or [Event-Procedure]
An dem folgenden Code des Eingang-Forms, das die Anwendung quasi steuert, wurde NICHTS geändert:
[color=[color=navy][size=8pt]Option Compare Database
Option Explicit
Const SW_HIDE = 0 -> Fenster ausblenden
Const SW_NORMAL = 1 -> Fenster wiederherstellen bzw. einblenden
Private Declare Function ShowWindow Lib user32 _
(ByVal hwnd As Long, ByVal nCmdShow As Long) As Long
Private Sub Doku01_Click()
Dokuname = Dokumentation01
Call Doku
End Sub
Private Sub EMail_Click()
On Error GoTo Err_EMail_Click
Dim stAppName As String
stAppName = C:\Programme\Outlook Express\MSIMN.EXE
Call Shell(stAppName, 1)
Exit_EMail_Click:
Exit Sub
Err_EMail_Click:
MsgBox Err.Description
Resume Exit_EMail_Click
End Sub
Private Sub Form_Activate()
Dim hWindow, nResult, nCmdShow As Long
hWindow = Application.hWndAccessApp
nCmdShow = SW_HIDE
nResult = ShowWindow(ByVal hWindow, ByVal nCmdShow)
DoCmd.Maximize
End Sub
Private Sub Form_Load()
Dim p As Recordset, Kriterium As String, J As Integer, Fr As String
Dim Art As String
AllowQuit = False -> Sperre des Verlassens von ACCESS aktivieren
KonsPrüfung -> Konsistenzprüfung
ShortcutMenu = False -> Ausschalten des Menues rechte Maustaste
' Hardware-Status feststellen
' Freischaltung der Reservation
Kriterium = Select DatenName,PW3, Hardware from Installation
Set DB = CurrentDb
Set p = DB.OpenRecordset(Kriterium)
Applogo = p![DatenName] & .png
Hardware = p![Hardware]
If Not IsNull(p![PW3]) Then
Fr = p![PW3]
Else
Fr = soschongarnicht
End If
p.Close
For J = 1 To Me.Controls.Count - 1
With Me.Controls(J)
Select Case .ControlType
Case acCommandButton
Art = Trim(.Name)
If Art = Reservation Then
If Fr = istgratiszuhaben Then
Controls(J).Visible = True
Else
Controls(J).Visible = False
End If
End If
Case Else
End Select
End With
Next J
End Sub
Private Sub Form_Open(Cancel As Integer)
Me.Picture = Application.CurrentProject.Path & \ & Mainpicture.jpg
End Sub
Private Sub Form_Unload(Cancel As Integer)
If AllowQuit <> True Then Cancel = True
End Sub
Private Sub Internet_Click()
On Error GoTo Err_Internet_Click
Dim stAppName As String
stAppName = C:\Programme\Internet Explorer\IEXPLORE.EXE
Call Shell(stAppName, 1)
Exit_Internet_Click:
Exit Sub
Err_Internet_Click:
MsgBox Err.Description
Resume Exit_Internet_Click
End Sub
Private Sub Rapport_Click()
Forms![Eingang].Form.Visible = False
Me.Form.Visible = False
DoCmd.OpenReport Rapport, acViewPreview
DoCmd.SelectObject acReport, Rapport, False
DoCmd.Maximize
End Sub
Private Sub Stop_Click()
Dim mess, stil As String
Set DB = CurrentDb
stil = vbYesNo + vbQuestion + vbDefaultButton1
mess = Programm beenden?
DB.Execute delete * from Personen where Len(Ltrim(Zuname)) = 0;
If MsgBox(mess, stil, Applikation beenden) = vbYes Then
mess = Wenn Sie JA bestätigen, erfolgt eine Datensicherung & Chr(10) _
& auf den Wechseldatenträger. & Chr(10) & Chr(10) _
& Bei NEIN wird keine Datensicherung durchgeführt.
If MsgBox(mess, stil, Datensicherung) = vbNo Then
DoCmd.Quit
Fehler = 0
End If
Call dbSave(Fehler)
' Fehler = 2 ist Stick nicht vorhanden Vorgang wiederholen
If Fehler = 2 Then Exit Sub
If Fehler > 100 Then
mess = Die Datensicherung konnte NICHT durchgeführt werden! & Chr(10) & Chr(10) _
& Wollen Sie nach der Überprüfung des Wechseldatenträgers & Chr(10) _
& nochmals die automatische Datensicherung durchführen? & Chr(10) & Chr(10) _
& Drücke Ja-Knopf um in das Hauptmenue zurück zu kehren! & Chr(10) _
& Drücke Nein-Knopf um das Programm zu verlassen!
stil = vbYesNo + vbCritical + vbDefaultButton1
DoCmd.Beep
If MsgBox(mess, stil, Datensicherung) = vbYes Then Exit Sub
End If
AllowQuit = True
DoCmd.Quit
End If
End Sub,
[/size][/color]
Ich bin völlig ratlos, wo ich das Fehlverhalten lokalisieren soll, hat Jemand eine Idee?
Möglicherweise beissen sich die Versionen 2002 Englisch mit 2007 Runtime Deutsch. Ich habe keinen Bock darauf,
als kleiner Entwickler MS eine weitere Vollversion Office 2007 de abzukaufen. :'(
Ich hatte auf meinem alten XP-System Vaio VGC-V2m eine ziemlich komplexe Anwendung mit Off. prof. for XP de als Update auf Off. prof. 1997 de entwickelt. Lief perfect bis der Vaio schlagartig das Zeitliche segnete.
Auf dem neuen HP-Notebook mit Vista konnte ich Off. prof. 1997 de nicht mehr installieren. Vermutlich wegen der Vorinstallation der 60-Tage Version von Office home for Student 2007, die sich leider nicht Deinstallieren lässt. Ich habe aber noch eine vollständige englische Version Off. prof. for XP with Frontpage (2002) in petto, die ich problemlos installieren und für kleinere Sachen benützen konnte. Meine grosse Anwendung wurde mit Accessruntime 2007 de zusammengelinkt und an Anwender ohne MS-Office-Lizenz verteilt.
Nun musste ich einige Kleinigkeiten im VBA-Code ändern. Sie wurden vom Compiler problemlos als korrekt akzeptiert, aber seit dem Speichern der DB ist der Teufel los. Der Versuch, die Anwendung zu starten, führt schon vor dem/beim Öffnen des Eingangs-Form zu folgender kryptischen FM:
The expression on Open you entered as the event property setting produced the following error. Object or class does not support the set of events.
*The expression may not result in the name of an macro, the name of an user-defined function, or [Event-Procedure]
An dem folgenden Code des Eingang-Forms, das die Anwendung quasi steuert, wurde NICHTS geändert:
[color=[color=navy][size=8pt]Option Compare Database
Option Explicit
Const SW_HIDE = 0 -> Fenster ausblenden
Const SW_NORMAL = 1 -> Fenster wiederherstellen bzw. einblenden
Private Declare Function ShowWindow Lib user32 _
(ByVal hwnd As Long, ByVal nCmdShow As Long) As Long
Private Sub Doku01_Click()
Dokuname = Dokumentation01
Call Doku
End Sub
Private Sub EMail_Click()
On Error GoTo Err_EMail_Click
Dim stAppName As String
stAppName = C:\Programme\Outlook Express\MSIMN.EXE
Call Shell(stAppName, 1)
Exit_EMail_Click:
Exit Sub
Err_EMail_Click:
MsgBox Err.Description
Resume Exit_EMail_Click
End Sub
Private Sub Form_Activate()
Dim hWindow, nResult, nCmdShow As Long
hWindow = Application.hWndAccessApp
nCmdShow = SW_HIDE
nResult = ShowWindow(ByVal hWindow, ByVal nCmdShow)
DoCmd.Maximize
End Sub
Private Sub Form_Load()
Dim p As Recordset, Kriterium As String, J As Integer, Fr As String
Dim Art As String
AllowQuit = False -> Sperre des Verlassens von ACCESS aktivieren
KonsPrüfung -> Konsistenzprüfung
ShortcutMenu = False -> Ausschalten des Menues rechte Maustaste
' Hardware-Status feststellen
' Freischaltung der Reservation
Kriterium = Select DatenName,PW3, Hardware from Installation
Set DB = CurrentDb
Set p = DB.OpenRecordset(Kriterium)
Applogo = p![DatenName] & .png
Hardware = p![Hardware]
If Not IsNull(p![PW3]) Then
Fr = p![PW3]
Else
Fr = soschongarnicht
End If
p.Close
For J = 1 To Me.Controls.Count - 1
With Me.Controls(J)
Select Case .ControlType
Case acCommandButton
Art = Trim(.Name)
If Art = Reservation Then
If Fr = istgratiszuhaben Then
Controls(J).Visible = True
Else
Controls(J).Visible = False
End If
End If
Case Else
End Select
End With
Next J
End Sub
Private Sub Form_Open(Cancel As Integer)
Me.Picture = Application.CurrentProject.Path & \ & Mainpicture.jpg
End Sub
Private Sub Form_Unload(Cancel As Integer)
If AllowQuit <> True Then Cancel = True
End Sub
Private Sub Internet_Click()
On Error GoTo Err_Internet_Click
Dim stAppName As String
stAppName = C:\Programme\Internet Explorer\IEXPLORE.EXE
Call Shell(stAppName, 1)
Exit_Internet_Click:
Exit Sub
Err_Internet_Click:
MsgBox Err.Description
Resume Exit_Internet_Click
End Sub
Private Sub Rapport_Click()
Forms![Eingang].Form.Visible = False
Me.Form.Visible = False
DoCmd.OpenReport Rapport, acViewPreview
DoCmd.SelectObject acReport, Rapport, False
DoCmd.Maximize
End Sub
Private Sub Stop_Click()
Dim mess, stil As String
Set DB = CurrentDb
stil = vbYesNo + vbQuestion + vbDefaultButton1
mess = Programm beenden?
DB.Execute delete * from Personen where Len(Ltrim(Zuname)) = 0;
If MsgBox(mess, stil, Applikation beenden) = vbYes Then
mess = Wenn Sie JA bestätigen, erfolgt eine Datensicherung & Chr(10) _
& auf den Wechseldatenträger. & Chr(10) & Chr(10) _
& Bei NEIN wird keine Datensicherung durchgeführt.
If MsgBox(mess, stil, Datensicherung) = vbNo Then
DoCmd.Quit
Fehler = 0
End If
Call dbSave(Fehler)
' Fehler = 2 ist Stick nicht vorhanden Vorgang wiederholen
If Fehler = 2 Then Exit Sub
If Fehler > 100 Then
mess = Die Datensicherung konnte NICHT durchgeführt werden! & Chr(10) & Chr(10) _
& Wollen Sie nach der Überprüfung des Wechseldatenträgers & Chr(10) _
& nochmals die automatische Datensicherung durchführen? & Chr(10) & Chr(10) _
& Drücke Ja-Knopf um in das Hauptmenue zurück zu kehren! & Chr(10) _
& Drücke Nein-Knopf um das Programm zu verlassen!
stil = vbYesNo + vbCritical + vbDefaultButton1
DoCmd.Beep
If MsgBox(mess, stil, Datensicherung) = vbYes Then Exit Sub
End If
AllowQuit = True
DoCmd.Quit
End If
End Sub,
[/size][/color]
Ich bin völlig ratlos, wo ich das Fehlverhalten lokalisieren soll, hat Jemand eine Idee?
Möglicherweise beissen sich die Versionen 2002 Englisch mit 2007 Runtime Deutsch. Ich habe keinen Bock darauf,
als kleiner Entwickler MS eine weitere Vollversion Office 2007 de abzukaufen. :'(