systeemmelding 'inladen gekoppelde afbeeldingen' tegenhouden

Status
Niet open voor verdere reacties.

gebo51

Gebruiker
Lid geworden
30 mei 2007
Berichten
100
Beste Access forumleden

Mijn _FE en _BE database staat op een netwerk; afbeeldingen staan ook op een netwerkshare en zijn 'gekoppeld' in de database.

Bij het inladen van de afbeeldingen verschijnt steeds -kort in beeld- een systeemmelding, dat de afbeelding wordt geladen.
Niet erg, maar het geeft wel steeds een onnodig onrustig beeld.

Kan ik deze systeemmelding tegenhouden??

Bedankt alvast
 
Gebeurt meestal als je je afbeeldingen in jpeg hebt,

zet ze maar eens om naar bmp dan heb je dit niet .

Heb ergens een code liggen om dit op te vangen,laat nog iets weten


Groetjes
Dolfke
 
Laatst bewerkt:
Als eerste mogelijkheid kan je uw windows register aanpasssen

The Registry Fix
You can disable display of the Loading Image dialog with a registry tweak. The following registry value(s) need to be entered on each machine where the form/database will be run:

On all Windows versions:

Key: HKEY_LOCAL_MACHINE\Software\Microsoft\Shared Tools\Graphics Filters\Import\JPEG\Options
Name: ShowProgressDialog
Type: String
Value: No

On Windows 2000 and later you should also set the following key:

Key: HKEY_CURRENT_USER\Software\Microsoft\Shared Tools\Graphics Filters\Import\JPEG\Options
Name: ShowProgressDialog
Type: String
Value: No
 
Als 2 de mogelijkheid , via code als je niet in het register wilt werken of als je met meerdere gebruikers (andere inlog) op je pc zit.

Maak een form dat je opent in verborgen-modus en zet hiervan de Timer eigenschappen op 300

De OnTimer event is de volgende code
Code:
Private Sub Form_Timer() 
    Call sWatchAccess(Application.hWndAccessApp)
End Sub

Nu plaats je onderstaande code in je formulier waar de print knop staat
Code:
Private Sub Command0_Click()    
  On Error Resume Next    
  DoCmd.OpenForm "Form2"
  DoEvents:   DoEvents:   DoEvents
  DoCmd.OpenReport "UwRapport", acViewNormal
  DoCmd.Close acForm, "Form2"
End Sub
Form 2 is hier je verborgen form met de Timer event

Onderstaande code zet je in een module
Code:
' 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
'
Private Declare Function apiGetClassName Lib "user32" _
  Alias "GetClassNameA" _
  (ByVal hWnd As Long, _
  ByVal lpClassname As String, _
  ByVal nMaxCount As Long) _
  As Long

Private Declare Function apiGetWindowText Lib "user32" _
  Alias "GetWindowTextA" _
  (ByVal hWnd As Long, _
  ByVal lpString As String, _
  ByVal aint As Long) _
  As Long
  
Private Declare Function apiGetLastActivePopup Lib "user32" _
  Alias "GetLastActivePopup" _
  (ByVal hWndOwnder As Long) _
  As Long
  
Private Declare Function apiShowWindow Lib "user32" _
  Alias "ShowWindow" _
  (ByVal hWnd As Long, _
  ByVal nCmdShow As Long) _
  As Long
  
Private Const MAX_LEN = 255
Private Const GW_HWNDNEXT = 2
Private Const SW_HIDE = 0
Private Const SW_MINIMIZE = 6
Private Const SW_SHOWMINNOACTIVE = 7
Private Const SW_SHOWDEFAULT = 10

Sub sWatchAccess(ByVal hWndApp As Long)
'Required: hWndAccessApp (Application handle)
'
  On Error GoTo Err_Handler
  Dim lnghWndChild As Long
  Dim strCaption As String
  Dim strClass As String
  Dim lngRet As Long
  
  'Get the last active popup in hWndApp instance
  lnghWndChild = apiGetLastActivePopup(hWndApp)
  strClass = fGetClassName(lnghWndChild)
  strCaption = fGetCaption(lnghWndChild)
  'is this the modal window?
  If strClass = "#32770" And Trim(strCaption) = "Printing" Then
    lngRet = apiShowWindow(lnghWndChild, SW_SHOWMINNOACTIVE)
  End If

Exit_Here:
  Exit Sub
Err_Handler:
  MsgBox "Error #: " & Err.Number & vbCrLf & Err.Description, _
    vbCritical + vbOKOnly, "sWatchAccess-Runtime Error"
  Resume Exit_Here
End Sub

Private Function fGetClassName(ByVal hWnd As Long) As String
Dim strBuffer As String
Dim lngRet As Long
  strBuffer = String$(32, 0)
  lngRet = apiGetClassName(hWnd, strBuffer, Len(strBuffer))
  If lngRet > 0 Then
    fGetClassName = Left$(strBuffer, lngRet)
  End If
End Function

Private Function fGetCaption(ByVal hWnd As Long) As String
Dim strBuffer As String
Dim lngRet As Long
  strBuffer = String$(MAX_LEN, 0)
  lngRet = apiGetWindowText(hWnd, strBuffer, Len(strBuffer))
  If lngRet > 0 Then
    fGetCaption = Left$(strBuffer, lngRet)
  End If
End Function


Hoop dat je hiermee geholpen zijt.;)


Groetjes
Dolfke
 
Beste Dolfke,

Te gek :thumb:
Geweldig bedankt voor je uitgebreide antwoord.

Ik ga ermee aan de slag en laat nog even weten of ik het voorelkaar heb gekregen.
Dan zet ik daarna de vraag op 'opgelost'

Groeten
 
Beste Dolfke,

Nog even een vraag over het onderstaande.
Wat bedoel je met plaatsen van de code 'waar de printknop staat' ??


Nu plaats je onderstaande code in je formulier waar de print knop staat

Code:
Private Sub Command0_Click()
On Error Resume Next
DoCmd.OpenForm "Form2"
DoEvents: DoEvents: DoEvents
DoCmd.OpenReport "UwRapport", acViewNormal
DoCmd.Close acForm, "Form2"
End Sub
 
Beste Dolfke,

Nog even een vraag over het onderstaande.
Wat bedoel je met plaatsen van de code 'waar de printknop staat' ??

Hallo Gebo51

Ge hebt uiteraard geen print knop was bedoelt als je een rapport wilde weergeven en in die knop kon je dit dan zetten .

Dit moet je zetten in het event wanneer je de afbeeldingen inlaad

Groetjes
Dolfke
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan