Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

combinar ACCES con Word

109 views
Skip to first unread message

charrogar

unread,
Feb 5, 2010, 6:54:01 AM2/5/10
to
Uso ACCES 2007
me pasa lo siguiente:
he creado un documento word que realiza una combinacion de correspondencia
para crear etiquetas (el documento al abrir ejecuta un codigo SQL que realiza
la combinación de correspondencia y hasta esto sin problema)
Cuando desde un formulario acces abro ese mismo documento (se abre pero...)
no actua de la misma manera, ya no ejecuta el codigo SQL que realiza la
combinación.
Desde mi torpeza entiendo que debe de abrir el documento como de solo
lectura y habria , de algun modo, que decir que fuese de escritura.
gracias

Gracias

Chiri

unread,
Feb 5, 2010, 9:55:52 AM2/5/10
to

Vamos a ver si te he entendido

Es en word donde se ejecuta el código sql, supongo que para la base de
datos en la que estás trabajando.

¿Por qué no haces la consulta en la base de datos y luego trasladas los
datos al word?

de cualquier forma, dinos el código que has puesto en word
y el código que has puesto en access para que se abra el word

así podremos orientarte algo más.

un saludo

charrogar

unread,
Feb 5, 2010, 5:51:02 PM2/5/10
to
Este es el codigo del boton de comando

Private Sub Comando85_Click()


Dim strPATH, strPROP, mensaje, estilo, TiTULO, Respuesta
Dim WordApp As Object

mensaje = "¿Quiere crear las etiquetas ?"
estilo = vbYesNo + vbQuestion + vbDefaultButton1
TiTULO = "PROCESO DE CREACION DE ETIQUETAS"
Respuesta = MsgBox(mensaje, estilo, TiTULO)

If Respuesta = vbYes Then

strPATH = Application.CurrentProject.Path
Set WordApp = CreateObject("Word.Application")
With WordApp
.Visible = True 'False
.Documents.Add strPATH & "\etiquetas.doc"
End With
End If
End Sub

Gracias


"charrogar" escribió:

Patxi Sanz

unread,
Feb 6, 2010, 12:31:48 PM2/6/10
to
Ya sólo falta ver la consulta SQL y casi más importante, cómo la ejecutas en
Word.

--
Un saludo,


Patxi Sanz
Tudela (NA)
http://www.pasa.es.tt/

charrogar

unread,
Feb 6, 2010, 1:42:01 PM2/6/10
to
Hola Patxi
la SQL la genera word automaticamente cuando en un documento haces una
combinacion de correspondencia.
Luego cada vez que abres ese archivo te advierte de que se va a ejecutar un
codigo SQL que aparece en una ventana como select from....
Pero todo ello sin intervencion del usuario

Como te digo cada vez que abro ese fichero etiquetas.doc me combina los
datos de la tabla acces con el documento de las etiquetas, es decir me crea
una etiqueta por cada registro de la tabla.
pero cuando el archivo etiquetas.doc lo abro mediante código desde acces no
actua igual que cuando se abre desde word, no realiza la combinacion y es mas
deja inhabilitados los menus de word que lo realizarian
gracias
"Patxi Sanz" escribió:

chiri13

unread,
Feb 6, 2010, 4:07:24 PM2/6/10
to
he mandado este mensaje desde ayer tres veces y no aparece (seguramente es
culpa m�a porque me he pasado a thunderbird y no s� como funciona)

lo vuelvo a repetir esta vez desde outlook y siento el retraso.

De cualquier forma, lo que intentas hacer no es posible, para que lo
confirmes, haz una cosa, desvinc�lalo, abre la base de datos, intenta
vincularlo y te dir� que el usuario Admin ha bloqueado la base datos... o
algo parecido ya que estando abierta no puede trabajar.

Por ello te pongo lo que hay aqu� abajo y me cuentas que tal te va y sobre
ello trabajamos (salvo que haya alguna sugerencia de los expertos genios
mejor claro)

Como veo que tienes conocimientos, te pongo un c�digo al que le faltan
cosillas, como saber la hoja de etiquetas de cuantas por cuantas y as� ir
construyendo en funci�n de los datos, de cualquier forma si tienes dudas nos
comentas. AAAhhh, que no se me olvide, lo que quieres hacer quiz� es algo
m�s f�cil haciendo un informe de access, pero si tienes mucho inter�s que
sea en word prueba con esto

If Respuesta = vbYes Then

strPATH = Application.CurrentProject.Path
Set WordApp = CreateObject("Word.Application")
With WordApp
.Visible = True 'False
.Documents.Add strPATH & "\etiquetas.doc"

'selecciona una celda de la tabla y ponle el valor "prueba"
'como quieres ir poniendo una en cada etiqueta, s�lo tienes que
'recorrer con do until tuconsulta.eof, sabiendo el n�mero de columnas
'tendr�s que hacer un c�lculo matem�tico si hay 3 columnas, ser� 'dividir
para 3 el primer n�mero ser� el cociente y el segundo el resto
.Application.ActiveDocument.Tables(1).cell(2, 1).Range.SELECT
.Application.Selection.Text = "prueba" 'Trim(Nz(Me.Nombre))

End With
WordApp.Application.Selection.MoveRight Unit:=1, Count:=1 'salimos tabla
'unit=1 caracteres


End If

bueno espero no haberme equivocado y que el c�digo est� bien, lo he hecho
sin probarlo


ya nos cuentas


"charrogar" <char...@hotmail.com> escribi� en el mensaje
news:85918585-9255-4892...@microsoft.com...


> Uso ACCES 2007
> me pasa lo siguiente:
> he creado un documento word que realiza una combinacion de correspondencia
> para crear etiquetas (el documento al abrir ejecuta un codigo SQL que
> realiza

> la combinaci�n de correspondencia y hasta esto sin problema)


> Cuando desde un formulario acces abro ese mismo documento (se abre
> pero...)
> no actua de la misma manera, ya no ejecuta el codigo SQL que realiza la

> combinaci�n.


> Desde mi torpeza entiendo que debe de abrir el documento como de solo
> lectura y habria , de algun modo, que decir que fuese de escritura.
> gracias
>
> Gracias
>

"charrogar" <char...@hotmail.com> escribi� en el mensaje
news:095AA4F9-2A22-4DBE...@microsoft.com...


> Este es el codigo del boton de comando
>
> Private Sub Comando85_Click()
>
>
> Dim strPATH, strPROP, mensaje, estilo, TiTULO, Respuesta
> Dim WordApp As Object
>
> mensaje = "�Quiere crear las etiquetas ?"
> estilo = vbYesNo + vbQuestion + vbDefaultButton1
> TiTULO = "PROCESO DE CREACION DE ETIQUETAS"
> Respuesta = MsgBox(mensaje, estilo, TiTULO)
>
> If Respuesta = vbYes Then
>
> strPATH = Application.CurrentProject.Path
> Set WordApp = CreateObject("Word.Application")
> With WordApp
> .Visible = True 'False
> .Documents.Add strPATH & "\etiquetas.doc"
> End With
> End If
> End Sub
>
> Gracias
>
>
>
>

> "charrogar" escribi�:


>
>> Uso ACCES 2007
>> me pasa lo siguiente:
>> he creado un documento word que realiza una combinacion de
>> correspondencia
>> para crear etiquetas (el documento al abrir ejecuta un codigo SQL que
>> realiza

>> la combinaci�n de correspondencia y hasta esto sin problema)


>> Cuando desde un formulario acces abro ese mismo documento (se abre
>> pero...)
>> no actua de la misma manera, ya no ejecuta el codigo SQL que realiza la

>> combinaci�n.

Chiri

unread,
Feb 6, 2010, 5:12:25 PM2/6/10
to
he mandado este mensaje desde ayer tres veces y no aparece (seguramente es
culpa mía porque me he pasado a thunderbird y no sé como funciona)

lo vuelvo a repetir esta vez desde outlook y siento el retraso.

De cualquier forma, lo que intentas hacer no es posible, para que lo

confirmes, haz una cosa, desvincúlalo, abre la base de datos, intenta
vincularlo y te dirá que el usuario Admin ha bloqueado la base datos... o


algo parecido ya que estando abierta no puede trabajar.

Por ello te pongo lo que hay aquí abajo y me cuentas que tal te va y sobre


ello trabajamos (salvo que haya alguna sugerencia de los expertos genios
mejor claro)

Como veo que tienes conocimientos, te pongo un código al que le faltan
cosillas, como saber la hoja de etiquetas de cuantas por cuantas y así ir
construyendo en función de los datos, de cualquier forma si tienes dudas nos
comentas. AAAhhh, que no se me olvide, lo que quieres hacer quizá es algo
más fácil haciendo un informe de access, pero si tienes mucho interés que


sea en word prueba con esto

If Respuesta = vbYes Then

strPATH = Application.CurrentProject.Path
Set WordApp = CreateObject("Word.Application")
With WordApp
.Visible = True 'False
.Documents.Add strPATH & "\etiquetas.doc"
'selecciona una celda de la tabla y ponle el valor "prueba"

'como quieres ir poniendo una en cada etiqueta, sólo tienes que
'recorrer con do until tuconsulta.eof, sabiendo el número de columnas
'tendrás que hacer un cálculo matemático si hay 3 columnas, será 'dividir
para 3 el primer número será el cociente y el segundo el resto


.Application.ActiveDocument.Tables(1).cell(2, 1).Range.SELECT
.Application.Selection.Text = "prueba" 'Trim(Nz(Me.Nombre))

End With
WordApp.Application.Selection.MoveRight Unit:=1, Count:=1 'salimos
tabla
'unit=1 caracteres


End If

bueno espero no haberme equivocado y que el código esté bien, lo he hecho
sin probarlo


ya nos cuentas


El 05/02/2010 12:54, charrogar escribió:

Chiri

unread,
Feb 7, 2010, 10:15:47 AM2/7/10
to
Con esta yo creo que hago la décima prueba, en todas ellas he cambiado
algo, así que ya me diréis si lo veis al menos esta (o todas)
sigo con el intento, he mandado este mensaje desde ayer diez veces y no
aparece (seguramente es
culpa mía porque me he pasado a thunderbird y no sé como funciona)

lo vuelvo a repetir esta vez desde outlook y siento el retraso.

De cualquier forma, lo que intentas hacer no es posible, para que lo
confirmes, haz una cosa, desvincúlalo, abre la base de datos, intenta
vincularlo y te dirá que el usuario Admin ha bloqueado la base datos... o
algo parecido ya que estando abierta no puede trabajar.

Por ello te pongo lo que hay aquí abajo y me cuentas que tal te va y sobre
ello trabajamos (salvo que haya alguna sugerencia de los expertos genios
mejor claro)

Como veo que tienes conocimientos, te pongo un código al que le faltan
cosillas, como saber la hoja de etiquetas de cuantas por cuantas y así ir
construyendo en función de los datos, de cualquier forma si tienes dudas nos
comentas. AAAhhh, que no se me olvide, lo que quieres hacer quizá es algo
más fácil haciendo un informe de access, pero si tienes mucho interés que
sea en word prueba con esto

If Respuesta = vbYes Then

strPATH = Application.CurrentProject.Path
Set WordApp = CreateObject("Word.Application")
With WordApp
.Visible = True 'False
.Documents.Add strPATH & "\etiquetas.doc"

'selecciona una celda de la tabla y ponle el valor "prueba"
'como quieres ir poniendo una en cada etiqueta, sólo tienes que
'recorrer con do until tuconsulta.eof, sabiendo el número de columnas
'tendrás que hacer un cálculo matemático si hay 3 columnas, será 'dividir
para 3 el primer número será el cociente y el segundo el resto
.Application.ActiveDocument.Tables(1).cell(2, 1).Range.SELECT
.Application.Selection.Text = "prueba" 'Trim(Nz(Me.Nombre))

End With
WordApp.Application.Selection.MoveRight Unit:=1, Count:=1 'salimos
tabla
'unit=1 caracteres


End If

bueno espero no haberme equivocado y que el código esté bien, lo he hecho
sin probarlo


ya nos cuentas

El 05/02/2010 23:51, charrogar escribió:
> Este es el codigo del boton de comando
>
> Private Sub Comando85_Click()
>
>
> Dim strPATH, strPROP, mensaje, estilo, TiTULO, Respuesta
> Dim WordApp As Object
>
> mensaje = "¿Quiere crear las etiquetas ?"
> estilo = vbYesNo + vbQuestion + vbDefaultButton1
> TiTULO = "PROCESO DE CREACION DE ETIQUETAS"
> Respuesta = MsgBox(mensaje, estilo, TiTULO)
>
> If Respuesta = vbYes Then
>
> strPATH = Application.CurrentProject.Path
> Set WordApp = CreateObject("Word.Application")
> With WordApp
> .Visible = True 'False

> .Documents.Add strPATH& "\etiquetas.doc"

Patxi Sanz

unread,
Feb 8, 2010, 6:46:05 AM2/8/10
to
0 new messages