Retroceder   Foros del Web > Temas generales de computación > Programación > Visual Basic

Respuesta
 
Herramientas Desplegado
Antiguo 13-nov-2006, 23:42   #1 (permalink)
pepelo está en el buen camino
 
Fecha de Ingreso: abril-2004
Mensajes: 10
ListBox, textbox y BD

Como estan, necesito de su sabiduria!!!
Tengo un sistemita que adm. fichas medicas.

Basicamente funciona asi
Cargo la ficha en un txtbox (multiline) y lo grabo en la BD, cuando quiero consultar todas las fichas lo muestro en un listbox y me muestra todo

El problema es que si en el txtbox cargue varias lineas me muestra el reg. en una linea y separa los enter con 2 [].
Como puedo hacer para que lo muestre separado?
A mi se me ocurrio grabar en la bd varios registros segun la la cant. de caracteres (ej. cada 80) o por cada enter. El tema es que no se como

Les paso los codigos

HISTORIAL
LstHis.Clear
Codigo = frmPacientes.TxtCod
Set RsHisto = New Recordset
ssql1 = "select Cod_Pa, Historia, (Left(Fecha,3) & Mid(Fecha,4,3) & " _
& "Right(Fecha,2)) as Fecha, Detalle from historias " _
& "where Cod_Pa = " & val(Codigo) & " and Estado= 'A' order by Historia "
RsHisto.Open ssql1, CnSAHC, adOpenDynamic, adLockOptimistic
If RsHisto.BOF And RsHisto.EOF Then
LstHis.AddItem "Ficha Vacia"
Else
LstHis.AddItem RsHisto!Historia & " - " & RsHisto!Fecha & " - " & RsHisto!Detalle
RsHisto.MoveNext
Do While Not RsHisto.EOF
LstHis.AddItem RsHisto!Historia & " - " & RsHisto!Fecha & " - " & RsHisto!Detalle
RsHisto.MoveNext
Loop
End If
RsHisto.Close
End Sub

ALTA

Codigo = frmPacientes.TxtCod
Set RsHisto = New Recordset
ssql1 = "select Historia from historias " _
& "where Cod_Pa = " & val(Codigo) & " order by Historia "
RsHisto.Open ssql1, CnSAHC, adOpenDynamic, adLockOptimistic
If RsHisto.BOF And RsHisto.EOF Then
TxtCodHis = 10
Else
RsHisto.MoveLast
Codigo = RsHisto!Historia
Codigo1 = val(Codigo) + 10
TxtHis.SetFocus
TxtCodHis = Codigo1
End If
RsHisto.Close

A partir de aca compruebo y grabo
If TxtHis = "" Then
Men = MsgBox("Complete la ficha nueva del Paciente", vbExclamation, "Campo Incompleto")
TxtHis.SetFocus
Exit Sub
End If
Fecha = Format$(Date, "dd/mm/yy")
CodPac = val(frmPacientes.TxtCod)

On Error GoTo ErrTrans
CnSAHC.BeginTrans
ssql = "insert into historias (Cod_Pa, Historia, Fecha, Detalle, cod_me, Estado) " _
& " values ('" & CodPac & "', '" & Histo & "','" & Fecha & "','" & TxtHis & "'" _
& " ,'" & Medico & "', 'A')"
CnSAHC.Execute ssql
CnSAHC.CommitTrans
TxtCodHis = ""
TxtHis = ""
CargaHis
Exit Sub

ErrTrans:
If Err.Number <> 0 Then
mes = Err.Number
Men = MsgBox("Se produjo un error en la actualizacion de los datos", vbExclamation, "Error de Sistema")
CnSAHC.RollbackTrans
End If

Gracias por su ayuda.
pepelo está desconectado   Responder Citando
Antiguo 14-nov-2006, 05:01   #2 (permalink)
tazzito ha deshabilitado el karma
 
Avatar de tazzito
 
Fecha de Ingreso: agosto-2006
Mensajes: 363
consulta como tienes definido el textbox como multiline?
lo otro tendrias que probar que tal te va con un replace
tazzito está desconectado   Responder Citando
Antiguo 14-nov-2006, 17:11   #3 (permalink)
pepelo está en el buen camino
 
Fecha de Ingreso: abril-2004
Mensajes: 10
Si esta como multiline.
Funciona todo pero me graba todo en un registro y cuando consulto el historial me muestra todo en una linea en un listbox.
Lo que necesito es que lo muestre como se ingreso en el txtbox. por eso se me ocurrio grabar varios registros de 80 de caracteres max y reconozca el enter. El problema es que no se como encararlo.

A que te referis cuando decis que pruebe con un replace.
pepelo está desconectado   Responder Citando
Antiguo 14-nov-2006, 22:32   #4 (permalink)
pepelo está en el buen camino
 
Fecha de Ingreso: abril-2004
Mensajes: 10
Estoy tratando de realizar la consulta para ver el historial en el listbox grabando una linea cada 80 chr con la funcion Len y Mid, el problema que tengo es que no se como reconocer el enter que tengo grabado en la base me muestra 2 signos
ej. "El texto q tengo grabado. [][] con el enter en la misma linea."

Lo que necesito es que muestre hasta el enter o 80 chr. por linea

El campo en la bd es de tipo memo.

Por favor si pueden darme una mano, ya que lo necesito urgente.

Gracias de antemano
pepelo está desconectado   Responder Citando
Antiguo 15-nov-2006, 02:37   #5 (permalink)
vash-stampede- sólo puede mejorar
 
Avatar de vash-stampede-
 
Fecha de Ingreso: abril-2006
Ubicación: En el estómago de una Rana
Mensajes: 441
No se si funcionará pero has probado que por ejemplo cuando te carge los datos en el textbox, lo revise letra a letra, y cuando encuentre [] pues que haga un enter o cuando encuentre [][]. Que cuando encuentre esos caracteres le metes por ascii un enter (si no recuerdo mal creo que era el 13), pero vaya alomejor estoy diciendo una tonteria.

Estoy empezando un poco y solo son algunas ideas jejeje, espero ser de ayuda...
__________________
¡¡¡ Hoy el son de la batalla llegará hasta mi lucharemos hasta vencer o morir, hoy avanzaremos entre toda oscuridad llevando en nuestra sangre el himno de Rohan !!!!!
vash-stampede- está desconectado   Responder Citando
Antiguo 15-nov-2006, 05:20   #6 (permalink)
tazzito ha deshabilitado el karma
 
Avatar de tazzito
 
Fecha de Ingreso: agosto-2006
Mensajes: 363
el replace que te digo es algo asi


txtMemo.text = Replace( miRecordset!CampoMemo, "[][]", vbCr + vbLf)


lo que hace esta funcion reemplaza un juego de caracter por otro dentro de una cadena, el vbcr + vblf simulan el enter pruebalo asi y nos comentas.
tazzito está desconectado   Responder Citando
Respuesta
No hay votos aún.


Herramientas
Desplegado

Normas de Publicación
No puedes crear nuevos temas
No puedes responder temas
No puedes subir archivos adjuntos
No puedes editar tus mensajes

BB code is Activado
Caritas están Activado
[IMG] está Activado
Código HTML está Desactivado


La Zona horaria es GMT -6. Ahora son las 23:25.


Message Board Statistics

LinkBacks Enabled by vBSEO 3.1.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93