Ver Mensaje Individual
  #1 (permalink)  
Antiguo 17/09/2013, 04:44
hermesalado48
 
Fecha de Ingreso: agosto-2013
Mensajes: 9
Antigüedad: 11 años, 2 meses
Puntos: 0
parámetro de cadena demasiado largo

Hola a todos: Siento no haber conectado antes pero no me ha sido posible. He visto que tengo un nuevo mensaje en la pregunta que planteé, pero no sé muy bien cómo tengo que hacer para verlo. En cualquier caso, creo que ya pude resolverlo aunque no sé como indicar que está solucionado...
Me enfrento ahora con otro problema:
En un formulario llamado "productos_que_faltan" tengo tres cuadros de texto basados en una tabla llamada "clientes" cuya estructura es:
campo Idcliente - Campo clave, autonumérico, indexado sin duplicados
campo Nombreyapellidos - tipo texto
campo dirección - tipo texto

y un cuadro combinado basado en otra tabla llamada "Productos"
La estructura de la tabla es:
campo codigoproducto - Campo clave, autonumérico, indexado sin duplicados
campo Idcliente - tipo número
campo nombreproducto - tipo texto
campo descripción - tipo memo (en este campo se describen las propiedades del
producto, ya que el nombre no es lo suficientemente claro. En
ocasiones este campo ocupa más de 255 caracteres)

Al cambiar la selección del cuadro combinado, se ejecuta una consulta para poder obtener los datos del campo memo (ya que en el cuadro combinado no aparecen) y esos datos los paso a otro cuadro de texto del mismo formulario llamado producto1.

He colocado también un botón de comando de nombre "Enviar Carta" el cual, al hacer click, abre una plantilla en Word con la siguiente estructura:

encabezado con el logotipo y el nombre de la empresa.
detalle

#Nombre y apellidos#
#Dirección#

"Sentimos comunicarle que, por motivos ajenos a nuestra voluntad, no nos es posible servirle los siguientes productos:" (esto es un texto fijo)

#PRODUCTO1#

La idea es que, al pulsar el botón de comando "enviar carta", abra la plantilla de nombre "Noproductos" y sustituya el texto que va entre ## por el valor correspondiente del formulario. Encontré buscando en internet un código que os expongo a continuación y que funciona bien, salvo cuando el campo descripción tiene más de 255 caracteres. Entonces me aparece el mensaje de error "el parámetro de la cadena es demasiado largo". Solo cuelgo la parte del código referida a #PRODUCTO1# que es la que me da el error.
Código vb:
Ver original
  1. Private sub enviarcarta()
  2.  
  3.  Dim Word As New Word.Application
  4.  Dim Noproductos As Word.Document
  5.  Dim myRange as Range
  6.  
  7. Word.Visible = True
  8. Set Noproductos=Word.Documents.Open(Filename:="C:\Noproductos.docx", ReadOnly:=False
  9. Set myRange=Word.ActiveDocument.Content
  10.  
  11. With myRange.Find
  12. .ClearFormatting
  13. .Replacement.ClearFormatting
  14. .Text = #PRODUCTO1#
  15. .Replacement.Text = Producto1     'aquí es donde me da el error (producto1 es el
  16.                                                       nombre del cuadro de texto del formulario)
  17. .Execute Replace:=wdReplaceAll
  18. End With
  19. End Sub
Lo cierto es que no sé como solucionar este problema, ya digo que, el código funciona bien si el texto que debo introducir es menor de 255 caracteres. Agradezco desde ya cualquier orientación o ayuda pues no sé por donde seguir y se me hecha el tiempo encima (tengo que haberlo solucionado en esta semana

Última edición por gnzsoloyo; 17/09/2013 a las 08:14