Asociar un combobox a un campo de un origen de datos establecido

17/11/2006 - 12:09 por kusflo | Informe spam
Tengo un documento asociado a un origen de datos (para combinar
correspondencia). Se me ocurrio poner un combobox en el documento asociado a
un campo del origen de datos para que los usuarios puedan escoger el registro
del cual desean obtener la etiqueta, sobre, etc..

Mi problema es que no tengo ni idea de como asociar el origen de datos del
combobox con el campo del origen de datos de combinar correspondencia. Ayuda
please!



"Saber que se sabe lo que se sabe y que no se sabe lo que no se sabe; he
aquí el verdadero saber." Confucio.

Preguntas similare

Leer las respuestas

#1 Tux
17/11/2006 - 15:53 | Informe spam
kusflo escribió:
Tengo un documento asociado a un origen de datos (para combinar
correspondencia). Se me ocurrio poner un combobox en el documento asociado a
un campo del origen de datos para que los usuarios puedan escoger el registro
del cual desean obtener la etiqueta, sobre, etc..

Mi problema es que no tengo ni idea de como asociar el origen de datos del
combobox con el campo del origen de datos de combinar correspondencia. Ayuda
please!





Hola kusflo :-)

Te paso un articulo kb de la micrososoft, por ahi creo que dice algo
sobre <<Cómo crear un cuadro combinado que contiene más de 25 elementos
de una base de datos de Access >>>

http://support.microsoft.com/?id8561

Nos comentas ok? :-)




¡Un SAludo! :-)

www.fermu.com
www.zorval.es
Respuesta Responder a este mensaje
#2 kusflo
20/11/2006 - 10:19 | Informe spam
En el artículo que me recomendaste crean el combobox y en vez de asignarle un
origen de datos añaden los valores por código utilizando una matriz. Yo lo
que quiero es asignarle al origen de datos del combo un "campo de combinar
correspondencia". El código que mas se acerca a lo que quiero, pero que no
funciona por que la propiedad "List" no es la correcta, es el siguiente:

ActiveDocument.com_empresa_sobres.List =
ActiveDocument.MailMerge.DataSource.DataFields(1)

A ver si con esto me pueden ayudar a descubrir el códgio correcto. Gracias!
"Saber que se sabe lo que se sabe y que no se sabe lo que no se sabe; he
aquí el verdadero saber." Confucio.
Respuesta Responder a este mensaje
#3 kusflo
20/11/2006 - 13:24 | Informe spam
Bueno al final lo logre dejo aqui la solución para otros que lo necesiten.
El código consta de un procedimiento para cuando el combo toma el foco y
otro para cuando pierde el foco.


Private Sub com_empresa_sobres_GotFocus()
Dim REGNUM As Integer
Dim CONTADOR As Integer
Dim CLIENTES() As String

'Nos situamos en el ultimo registro del origen de datos

ActiveDocument.MailMerge.DataSource.ActiveRecord = wdLastRecord
REGNUM = ActiveDocument.MailMerge.DataSource.ActiveRecord

'Nos situamos en el primer registro del origen de datos

ActiveDocument.MailMerge.DataSource.ActiveRecord = wdFirstRecord

'Creamos una matriz y la redimensionamos

ReDim Preserve CLIENTES(REGNUM - 1)
Do While Not CONTADOR = REGNUM
'Le agregamos los valores del campo que nos interese de combinar
correspondencia
CLIENTES(CONTADOR) =
ActiveDocument.MailMerge.DataSource.DataFields(3).Value
CONTADOR = CONTADOR + 1
ActiveDocument.MailMerge.DataSource.ActiveRecord = wdNextRecord
Loop

'Llenamos el combo con el contenido de la matriz CLIENTES

ActiveDocument.com_empresa_sobres.List() = CLIENTES

End Sub



Private Sub com_empresa_sobres_LostFocus()
If Me.com_empresa_sobres.Value <> "" Then
Dim NOMCLIENTE As String
NOMCLIENTE = Me.com_empresa_sobres.Value
'Buscamos el registro seleccionado y si existe nos situamos en el
If ActiveDocument.MailMerge.DataSource.FindRecord(NOMCLIENTE,
"NOMBRE_CLIENTE") = True Then
numRecord = ActiveDocument.MailMerge.DataSource.ActiveRecord
End If
End If
End Sub


"Saber que se sabe lo que se sabe y que no se sabe lo que no se sabe; he
aquí el verdadero saber." Confucio.
Respuesta Responder a este mensaje
#4 Tux
20/11/2006 - 14:02 | Informe spam
kusflo escribió:
Bueno al final lo logre dejo aqui la solución para otros que lo necesiten.
El código consta de un procedimiento para cuando el combo toma el foco y
otro para cuando pierde el foco.


Private Sub com_empresa_sobres_GotFocus()
Dim REGNUM As Integer
Dim CONTADOR As Integer
Dim CLIENTES() As String

'Nos situamos en el ultimo registro del origen de datos

ActiveDocument.MailMerge.DataSource.ActiveRecord = wdLastRecord
REGNUM = ActiveDocument.MailMerge.DataSource.ActiveRecord

'Nos situamos en el primer registro del origen de datos

ActiveDocument.MailMerge.DataSource.ActiveRecord = wdFirstRecord

'Creamos una matriz y la redimensionamos

ReDim Preserve CLIENTES(REGNUM - 1)
Do While Not CONTADOR = REGNUM
'Le agregamos los valores del campo que nos interese de combinar
correspondencia
CLIENTES(CONTADOR) =
ActiveDocument.MailMerge.DataSource.DataFields(3).Value
CONTADOR = CONTADOR + 1
ActiveDocument.MailMerge.DataSource.ActiveRecord = wdNextRecord
Loop

'Llenamos el combo con el contenido de la matriz CLIENTES

ActiveDocument.com_empresa_sobres.List() = CLIENTES

End Sub



Private Sub com_empresa_sobres_LostFocus()
If Me.com_empresa_sobres.Value <> "" Then
Dim NOMCLIENTE As String
NOMCLIENTE = Me.com_empresa_sobres.Value
'Buscamos el registro seleccionado y si existe nos situamos en el
If ActiveDocument.MailMerge.DataSource.FindRecord(NOMCLIENTE,
"NOMBRE_CLIENTE") = True Then
numRecord = ActiveDocument.MailMerge.DataSource.ActiveRecord
End If
End If
End Sub





Hola Kusflo :-)

Gracias por compartir con el grupo la solucion :-), estaba yo buscando
informacion entre ratos libres en el trabajo, que no estoy yo muy puesta
en esto del MailMerge ;-)

Gracias y Saludos
Monica


¡Un SAludo! :-)

www.fermu.com
www.zorval.es
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida