Avatar billede Slettet bruger
04. maj 2006 - 13:13 Der er 8 kommentarer og
1 løsning

2 API funktioner laver kludder for hinanden

Jeg har et modul, som kan skjule access, det bygger på noget API. Derudover har jeg på en formular en funktion, som kan afspille en wav-fil, dette bygger også på noget API. Denne funktion på formularen gør dog at formularen forsvinder, når den åbnes og man kan kun få den tilbage ved at dobbeltklikke på mdb-filen...

Så er der ikke en måde hvorpå jeg kan få begge funktioner til at virke, for de virker hver for sig!~)

Funktion:

Option Compare Database
Option Explicit
Private Declare Function PlaySound Lib "winmm.dll" Alias _
    "PlaySoundA" (ByVal lpszName As String, ByVal hModule As _
    Long, ByVal dwFlags As Long) As Long

    Private Const SND_ASYNC = &H1

    Private Const SND_FILENAME = &H20000

Private Sub GodkendtAf_AfterUpdate()
On Error Resume Next
If Me.GodkendtAf = "me" Then
Call PlaySound("c:\lotus\flg\media\jubel.wav", 0, SND_ASYNC Or SND_FILENAME)
End If
End Sub

Modul, som er kaldt under opstart af database:

Option Compare Database
Option Explicit

'************ Code Start **********
' This code was originally written by Dev Ashish.
' It is not to be altered or distributed,
' except as part of an application.
' You are free to use it in any application,
' provided the copyright notice is left unchanged.
'
' Code Courtesy of
' Dev Ashish
'
Global Const SW_HIDE = 0
Global Const SW_SHOWNORMAL = 1
Global Const SW_SHOWMINIMIZED = 2
Global Const SW_SHOWMAXIMIZED = 3


Private Declare Function apiShowWindow Lib "user32" _
    Alias "ShowWindow" (ByVal hwnd As Long, _
          ByVal nCmdShow As Long) As Long

Function fSetAccessWindow(nCmdShow As Long)
'Usage Examples
'Maximize window:
'      ?fSetAccessWindow(SW_SHOWMAXIMIZED)
'Minimize window:
'      ?fSetAccessWindow(SW_SHOWMINIMIZED)
'Hide window:
'      ?fSetAccessWindow(SW_HIDE)
'Normal window:
'      ?fSetAccessWindow(SW_SHOWNORMAL)
'
Dim loX  As Long
Dim loform As Form
    On Error Resume Next
    Set loform = Screen.ActiveForm
    If Err <> 0 Then 'no Activeform
      If nCmdShow = SW_HIDE Then
        MsgBox "Cannot hide Access unless " _
                    & "a form is on screen"
      Else
        loX = apiShowWindow(hWndAccessApp, nCmdShow)
        Err.Clear
      End If
    Else
        If nCmdShow = SW_SHOWMINIMIZED And loform.Modal = True Then
            MsgBox "Cannot minimize Access with " _
                    & (loform.Caption + " ") _
                    & "form on screen"
        ElseIf nCmdShow = SW_HIDE And loform.PopUp <> True Then
            MsgBox "Cannot hide Access with " _
                    & (loform.Caption + " ") _
                    & "form on screen"
        Else
            loX = apiShowWindow(hWndAccessApp, nCmdShow)
        End If
    End If
    fSetAccessWindow = (loX <> 0)
End Function

'************ Code End **********
Avatar billede terry Ekspert
04. maj 2006 - 13:48 #1
hi spg

can you explain a little more?
You say the code to hide Access works on its own. Do you have a form which is visible so that you can terminate the application and close Access correctly?

How do you open the form containing the code to open the wav file?

When you use the code to hide Access, it is important that you have some way to terminate the application and close Access correctly, otherwise you will end up having to close Access through Task Manager.
Avatar billede Slettet bruger
04. maj 2006 - 14:24 #2
Så er jeg her igen!~)

Alt fungerer fint indtil jeg åbner formularen med docmd.openform....

Gæster....
Avatar billede Slettet bruger
04. maj 2006 - 14:30 #3
Ok..
Avatar billede Slettet bruger
04. maj 2006 - 14:32 #4
Jeg må dog indrømme at jeg ikke får kaldt fSetAccessWindow(SW_SHOWNORMAL) når jeg lukker, det skal jeg lige ligge på, men det fungerer upåklageligt uden!~)

Det var først da jeg lagde den her playsound funktion på en formular, at den aktuelle formular forsvinder...
Avatar billede terry Ekspert
04. maj 2006 - 19:28 #5
Any chance of seeing the dB?
Avatar billede Slettet bruger
05. maj 2006 - 10:45 #6
Hi Terry...

Jeg kan desværre ikke sende dig db'en!~)
Avatar billede terry Ekspert
05. maj 2006 - 11:21 #7
OK.

The code to hide Access isnt supported and I know for a fact that it doesnt always work.

If you open another form WITHOUT the code for playing the wav file, do you still have problems?
Avatar billede Slettet bruger
05. maj 2006 - 13:44 #8
I love it and I hate it...

Problemet har løst sig selv, i dag da jeg åbnede programmet virkede det hele!~)
Avatar billede terry Ekspert
05. maj 2006 - 14:04 #9
:o)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester

IT-JOB

IT-Universitetet i København

CIO

Politiets Efterretningstjeneste

AI/ML udvikler i PET

LINK Mobility

Support Specialist