Todos los registros en un cuadro

Raul Espero hayas pasado un feliz fin de año. Mi pregunta es si sabes por código(no por consulta)hacer al pulsar un botón que todos los registros de un campo "e_mail" de una tabla "clientes" se copien en un cuadro de texto tipo memo "CCO" perteneciente este ultimo a otra tabla, y queden separados todos los registros entre si por un ; y un espacio. El cuadro de texto tipo memo "CCO" (viculado al campo "CCO" de otra tabla "e_mail_enviados") lo controlo o visualizo a través de un formulario de entrada de datos vinculado a la tabla "e_mail_enviados"
La explicación es larga pero se que código que necesito no es tan complejo pero no lo se hacer.

1 respuesta

Respuesta
1
Supongo que utilizas Access 97 que trabaja con DAO y es access 2000 o posterior es parecido (ADO).
En Lenguaje colocial sería algo así como:
Abre la base de datos por código
Abre la tabla clientes
Si la tabla clientes tiene más de cero registros
Ve al primero
Mientras no llegues al final
Añade a campoMemo el contenido del campo email y un ;
Muévete al siguiente registro
Cierra la tabla
Cierra la Base de Datos
Quita a campomemo el ultimo carácter (un ; que sobraría)
Que traducido a Visual Basic, sería algo así como:
Public Sub Botón_Click()
Dim BdLoc as database
Dim RsOrig as recordset
set bdloc=currentdb()
set rsorig=bdloc.openrecordset("Clientes",dbopensnapshot)
if rsorig.recordcount>0 then
rsorig.movefirst
while not rsorig.eof
CuadroTextoMemo=CuadroTextoMemo & Clientes!Email & ";"
rsorig.movenext
Wend
Endif
Rsorig. Close
Bdloc. Close
cuadrotextomemo=left(cuadrotextomemo,len(cuadrotextomemo)-1)
End Sub
Me dice que no se ha definido la variable y me presenta la siguiente linea
CuadroTextoMemo=CuadroTextoMemo & Clientes!Email & ";"
Y me marca la tabla clientes.
Te aclaro el cuadro de texto memo esta vinculado a la tabla e_mail_enviado y se llama "cco".
El campo e_mail esta vinculado a la tabla "clientes". Y la idea es meter todas las direcciones de imail en el cuadro de tecto "cco" en un formulario de entrada de datos no directamente en la tabla.
Gracias
En donde pone clientes! Email tienes que poner Rsorig! Email
¿Pero si quisiera adicionar la siguiente variable como haríamos?, qie me introduzca solo el e-mail de los clientes que viven en una ciudad especifica.
Tengo en la tabla "clientes" el campo "ciudad"
También tengo el el formulario un cuadro de texto independiente "ciunew" para escribir la ciudad que quiero y lógicamente el cuadro de texto memo "cco" al que nos hemos referido.
Gracias y Feliz Año
La linea
set rsorig=bdloc.openrecordset("Clientes",dbopensnapshot)
la tienes que sustituir por
set rsorig=bdloc.openrecordset("Select * from Clientes where Ciudad='" & ciunew & "'")
Me da un error en la ultima linea si no consigue ninguna ciudad con el nombre especificado y para terminar necesitaría que en un cuadro de texto independiente "nciudnewn" me colocara el numero de los registros que encontró. Por ejemplo, se encontraron 26 clientes en la ciudad de madrid. Claro la frase se encontraron clientes seria una etiqueta.
Lo intente con
Me.Texto8 = DCount("ciudad", "clientes",
Pero me quede pegado en el criterio, se que debo tomar la referencia del cuadro de texto "ciunew" pero me quede pegado
Sustituye la linea
cuadrotextomemo=left(cuadrotextomemo,len(cuadrotextomemo)-1)
por
if len(cuadrotextomemo)>0 then
cuadrotextomemo=left(cuadrotextomemo,len(cuadrotextomemo)-1)
Endif
El error te da cuando la longitud de cuadrotextomemo=0, al restar 1 no puedes coger -1 caracteres
para poner el número de registros encontrados
antes de rsorig.movefirst pones
rsorig.movelast
me.texto8="Se encontraron " & rsorig.recordcount & "registros en " & ciunew
La función Dcount también está bien, aunque es algo más lenta, en la condición where tienes que poner justo detrás del where de la instrucción openrecordset, es decir
Ciudad='" & ciunew & "'")

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas