Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

ListBox, textbox y BD

Estas en el tema de ListBox, textbox y BD en el foro de Visual Basic clásico en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 14/11/2006, 00:42
 
Fecha de Ingreso: abril-2004
Mensajes: 14
Antigüedad: 20 años
Puntos: 0
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.
  #2 (permalink)  
Antiguo 14/11/2006, 06:01
Avatar de tazzito  
Fecha de Ingreso: agosto-2006
Mensajes: 381
Antigüedad: 17 años, 9 meses
Puntos: 2
consulta como tienes definido el textbox como multiline?
lo otro tendrias que probar que tal te va con un replace
  #3 (permalink)  
Antiguo 14/11/2006, 18:11
 
Fecha de Ingreso: abril-2004
Mensajes: 14
Antigüedad: 20 años
Puntos: 0
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.
  #4 (permalink)  
Antiguo 14/11/2006, 23:32
 
Fecha de Ingreso: abril-2004
Mensajes: 14
Antigüedad: 20 años
Puntos: 0
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
  #5 (permalink)  
Antiguo 15/11/2006, 03:37
Avatar de vash-stampede-  
Fecha de Ingreso: abril-2006
Ubicación: En el estómago de una Rana
Mensajes: 441
Antigüedad: 18 años
Puntos: 3
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 !!!!!
  #6 (permalink)  
Antiguo 15/11/2006, 06:20
Avatar de tazzito  
Fecha de Ingreso: agosto-2006
Mensajes: 381
Antigüedad: 17 años, 9 meses
Puntos: 2
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.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 21:47.