Cuadro dialogo en windows 7

20/04/2012 - 23:02 por ibero1975 | Informe spam
Buenos días.
Tengo una aplicación en Access 2003 que siempre me ha funcionado en Windows XP. Me imprimía un informe en PDF y lo guardaba con la referencia que aparecía en el formulario que se encontraba en uso.
He cambiado de sistema operativo a Windows 7 y me da problemas a la hora de coger la referencia del formulario de la base de datos y trasladarlo al cuadro de dialogo de windows 7. El Access sigue siendo el 2003.
Gracias de antemano.
 

Leer las respuestas

#1 ibero1975
24/04/2012 - 16:04 | Informe spam
José Mª Fueyo escribió el 23/04/2012 12:07 :
Hola
¿Podrías poner el código que utilizas? ¿que error
te da?

Salu2
José Mª Fueyo
[MS MVP Access]


Buenas tardes.

El código que uso es el siguiente que siempre me ha funcionado con WINDOWS XP.

'*******************************************************************************
'* EnviarRuta
'* envía al cuadro de díalogo indicado la ruta de archivo a la ventana indicada
'* Argumentos: strCadena => Ruta del archivo
'* strVentana => Título de la ventana
'* strBoton => nombre del botón
'* uso: EnviarRuta strArchivoPDF, "Guardar como", "&Guardar"
'* ESH 23/11/09 20:03
'*******************************************************************************
Public Sub EnviarRuta(strCadena As String, strVentana As String, strBoton As String)
Dim blnExiste As Boolean, _
lngResultado As Long, _
lngVentanaPrincipal As Long, _
lngCuadroTexto As Long, _
lngBoton As Long, _
i As Long

blnExiste = True
If blnExiste Then
'busco el cuadro de diálogo
Do
lngVentanaPrincipal = FindWindow("#32770", strVentana)
Loop While lngVentanaPrincipal = 0
blnExiste = (Not lngVentanaPrincipal = 0)
End If
If blnExiste Then
'busco el cuadro de texto para escribir el nombre de archivo
Do
lngCuadroTexto = FindWindowEx(lngVentanaPrincipal, lngCuadroTexto, "Edit", vbNullString)
Loop While lngCuadroTexto = 0
blnExiste = (Not lngCuadroTexto = 0)
End If
If blnExiste Then
For i = 1 To Len(strCadena)
lngResultado = PostMessage(lngCuadroTexto, WM_CHAR, CLng(Asc(Mid(strCadena, i, 1))), MakeDWord(&H1, &H30))
Next i
End If
If blnExiste Then
'busco el botón Guardar
Do
lngBoton = FindWindowEx(lngVentanaPrincipal, lngBoton, "Button", strBoton)
Loop While lngBoton = 0
blnExiste = (Not lngBoton = 0)
End If
If blnExiste Then
'hago click en el botón Guardar
lngResultado = PostMessage(lngBoton, WM_LBUTTONDOWN, MK_LBUTTON, MakeDWord(0, 0))
lngResultado = PostMessage(lngBoton, WM_LBUTTONUP, MK_LBUTTON, MakeDWord(0, 0))
End If
End Sub ' EnviarRuta

El error que me da en WINDOWS 7 es que no me coge un valor del formulario para incluirlo en la ruta y el nombre del archivo que imprimo en PDF.
Llamo a este dato con el método Me.Informe desde código VBA.

Muchas gracias.

Preguntas similares