Visual Basic Foro
Programación => Bases de Datos => Mensaje iniciado por: omarinho23 en Febrero 16, 2010, 11:20:57 am
-
Buenooooooooo saludando a todos de nuevo! estuve tratando de agregar mas datos a una BD pero solo agrega en el inicio no donde lo cogi, ejemplo.
yo trato de agregar mas datos al item 4 osea 10 datos mas pero no lo ace , si no lo agrega en el item 1 nada mas ;S y hago mas modificaciones y solo los modifica en el primer item el el cod de la ventana para agregar es este
Option Explicit
Dim CNN As New ADODB.Connection
Dim rs As New ADODB.Recordset
Private Sub Check1_Click()
Text2.Text = ("x")
Text3.Text = (" ")
Text4.Text = (" ")
End Sub
Private Sub Check2_click()
Text3.Text = ("x")
Text2.Text = (" ")
Text4.Text = (" ")
End Sub
Private Sub Check3_Click()
Text4.Text = ("x")
Text2.Text = (" ")
Text3.Text = (" ")
End Sub
Private Sub Command1_Click()
Call Imprimir
End Sub
'Connection Confirmation
Private Sub Form_Load()
' establece la cadena de conexión a utilizar en la propiedad ConnectionString
CNN.ConnectionString = "Provider=SQLOLEDB.1;Password=qweqwe;Persist Security Info=True;User ID=omar;Initial Catalog=BASEFINAL;Data Source=SERVIDOR"
' abre la base de datos
CNN.Open
' Abre el recordset enviando la consulta sql
rs.Open "Select * from clientes", CNN, adOpenDynamic, adLockOptimistic
Command1.Enabled = False
End Sub
Private Sub cmdSave_Click()
If Text1(0) = "" Or Text1(1) = "" Then
MsgBox "Debe completar los datos", vbExclamation
Exit Sub
End If
Call Asignar_Datos
Call visualizar
rs.Update
MsgBox " Registro guardado", vbInformation, "Grabar"
desabilitaText
Command1.Enabled = True
End Sub
Private Sub Asignar_Datos()
rs("razonsocial") = Text1(0).Text
rs("direccion") = Text1(1).Text
rs("nºdeplaca") = Text1(2).Text
rs("marca") = Text1(3).Text
rs("modelo") = Text1(4).Text
rs("carroceria") = Text1(5).Text
rs("colores") = Text1(6).Text
rs("nºcilindros") = Text1(7).Text
rs("pesoneto") = Text1(8).Text
rs("cargautil") = Text1(9).Text
rs("pesobruto") = Text1(10).Text
rs("longitud") = Text1(11).Text
rs("ancho") = Text1(12).Text
rs("altura") = Text1(13).Text
rs("clase") = Text1(14).Text
rs("añofabrica") = Text1(15).Text
rs("combustible") = Text1(16).Text
rs("nºejes") = Text1(17).Text
rs("nºdemotor") = Text1(18).Text
rs("nºdeserieochasis") = Text1(19).Text
rs("nºpasajeros") = Text1(20).Text
rs("nºasientos") = Text1(21).Text
rs("nºruedas") = Text1(22).Text
rs("formula") = Text1(23).Text
rs("categoria") = Text1(24).Text
rs("potencia") = Text1(25).Text
rs("detalle1") = Text1(28).Text
rs("detalle2") = Text1(29).Text
rs("fecha") = Text1(30).Text
rs("modificacion") = Text2.Text
rs("montaje") = Text3.Text
rs("fabricacion") = Text4.Text
End Sub
Private Sub Imprimir()
Dim rsFicha As ADODB.Recordset
Set rsFicha = New Recordset
rsFicha.Open "Select * FROM clientes Where Cod=" & Text15, CNN, adOpenStatic, adLockReadOnly
If rsFicha.RecordCount > 0 Then
Set DataReport1.DataSource = rsFicha
DataReport1.Show
Else
MsgBox "No hay registro para imprimir ", vbInformation
End If
Unload Me
End Sub
Private Sub desabilitaText()
Text1(0).Enabled = False
Text1(1).Enabled = False
Text1(2).Enabled = False
Text1(3).Enabled = False
Text1(4).Enabled = False
Text1(5).Enabled = False
Text1(6).Enabled = False
Text1(7).Enabled = False
Text1(8).Enabled = False
Text1(9).Enabled = False
Text1(10).Enabled = False
Text1(11).Enabled = False
Text1(12).Enabled = False
Text1(13).Enabled = False
Text1(14).Enabled = False
Text1(15).Enabled = False
Text1(16).Enabled = False
Text1(17).Enabled = False
Text1(18).Enabled = False
Text1(19).Enabled = False
Text1(20).Enabled = False
Text1(21).Enabled = False
Text1(22).Enabled = False
Text1(23).Enabled = False
Text1(24).Enabled = False
Text1(25).Enabled = False
Text1(28).Enabled = False
Text1(29).Enabled = False
Text1(30).Enabled = False
Text2.Enabled = False
Text3.Enabled = False
Text4.Enabled = False
End Sub
' botón que mueve al primer previo
'''''''''''''''''''''''''''''''''''''''''''''''
Private Sub cmdMoveFirst_Click()
rs.MoveFirst
' Visualiza los datos en los textbox
Call Visualizar_Datos
End Sub
' botón que se desplaza al último registro
'''''''''''''''''''''''''''''''''''''''''''''''
Private Sub cmdMoveLast_Click()
' Ejecuta MoveLast y se posiciona en el último registro
rs.MoveLast
' Visualiza los datos en los textbox
Call Visualizar_Datos
End Sub
' Botón para el siguiente
'''''''''''''''''''''''''''''''''''''''''''''
Private Sub cmdMoveNext_Click()
rs.MoveNext
' Si no sobrepasó el final del recordset ...
If rs.EOF Then
' se posiciona en el ultimo
rs.MoveLast
MsgBox " Se está en el ultimo registro ", vbInformation
Else
' Visualiza los datos en los text box
Call Visualizar_Datos
End If
End Sub
' Command para ir al registro previo
''''''''''''''''''''''''''''''''''''''''''''''''''''''
Private Sub cmdMovePrevious_Click()
rs.MovePrevious
' si el recordset sobrepasó el comienzo se posiciona en el primero
If rs.BOF Then
rs.MoveFirst
MsgBox " este es el Primer registro ", vbInformation, " Primer registro"
Else
' Carga los datos
Call Visualizar_Datos
End If
End Sub
Private Sub visualizar()
Text15.Text = CLng(rs("cod"))
End Sub
Private Sub Visualizar_Datos()
Text15.Text = CLng(rs("cod"))
Text1(0) = rs("razonsocial")
Text1(1) = rs("direccion")
Text1(2) = rs("placa")
Text1(3) = rs("marca")
Text1(4) = rs("modelo")
Text1(5) = rs("carroceria")
Text1(6) = rs("colores")
Text1(7) = rs("cilindros")
Text1(8) = rs("pesoseco")
Text1(9) = rs("cargautil")
Text1(10) = rs("pesobruto")
Text1(11) = rs("longitud")
Text1(12) = rs("ancho")
Text1(13) = rs("altura")
Text1(14) = rs("clase")
Text1(15) = rs("año")
Text1(16) = rs("combustion")
Text1(17) = rs("nºejes")
Text1(18) = rs("nºdemotor")
Text1(19) = rs("nºchasis")
Text1(20) = rs("nºdepasajeros")
Text1(21) = rs("nºdeasientos")
Text1(22) = rs("nºderuedas")
Text1(23) = rs("formula")
Text1(24) = rs("categoria")
Text1(25) = rs("potencia")
Text1(28) = rs("detalle")
Text1(29) = rs("detalle2")
Text1(30) = rs("fecha")
End Sub
agradesco muxo su ayuda! :D
-
Sube el Codigo Fuente para que lo pueda ver y te digo
-
ESTA ES MI CONEX
Option Explicit
Public Declare Sub InitCommonControls Lib "comctl32" ()
' variables para la conexión y el recordset
''''''''''''''''''''''''''''''''''''''''''''
Public CNN As New ADODB.Connection
Public rs As New ADODB.Recordset
Public ObjItem As ListItem
Sub Main()
On Error Resume Next
Call InitCommonControls
Err.Clear
FrmPrincipalClau.Show
End Sub
Public Sub IniciarConexion()
With CNN
.CursorLocation = adUseClient
.Open "Provider=SQLOLEDB.1;Password=qweqwe;Persist Security Info=True;User ID=omar;Initial Catalog=BASEFINAL;Data Source=SERVIDOR"
End With
End Sub
Public Sub CargarListView(LV As ListView, rs As ADODB.Recordset)
On Error GoTo ErrorSub
Dim i As Integer
'limpia el LV
LV.ListItems.Clear
' si hay registros
If rs.RecordCount > 0 Then
' recorre el recordset
While Not rs.EOF
' añade los datos
Set ObjItem = LV.ListItems.Add(, , rs(0))
ObjItem.SubItems(14) = rs!voucher
ObjItem.SubItems(1) = rs!dia
ObjItem.SubItems(3) = rs!contacto
ObjItem.SubItems(4) = rs!razonsocial
ObjItem.SubItems(7) = rs!nºderuc
ObjItem.SubItems(8) = rs!direccion
ObjItem.SubItems(5) = rs!inspector
ObjItem.SubItems(6) = rs!tipodecertificado
ObjItem.SubItems(9) = rs!cantidad
ObjItem.SubItems(10) = rs!precio
ObjItem.SubItems(11) = rs!total
ObjItem.SubItems(12) = rs!codigodebarra
ObjItem.SubItems(13) = rs!cit
ObjItem.SubItems(2) = rs!nºdeplaca
ObjItem.SubItems(15) = rs!nºdemotor
ObjItem.SubItems(16) = rs!nºdeserieochasis
ObjItem.SubItems(17) = rs!nºdecertificado
ObjItem.SubItems(18) = rs!totalvoucher
ObjItem.SubItems(19) = rs!boletaofactura
ObjItem.SubItems(20) = rs!mes
ObjItem.SubItems(21) = rs!lista
ObjItem.SubItems(22) = rs!asignacion
ObjItem.SubItems(23) = rs!observacion
' siguiente registro
rs.MoveNext
Wend
End If
Call ForeColorColumn(&H8000&, 0, FrmPrincipalClau.LV)
'Call ForeColorColumn(vbRed, 6, FrmPrincipalcarmen.LV)
Exit Sub
ErrorSub:
If Err.Number = 94 Then Resume Next
End Sub
' cierra
Sub Desconectar()
On Local Error Resume Next
rs.Close
Set rs = Nothing
CNN.Close
Set CNN = Nothing
End Sub
con este veo mi tabla listview y la puedo editar
Option Explicit
' Botones de opción
''''''''''''''''''''''''''''''''''''''''''''''''''
Private Sub cmdOpciones_Click(Index As Integer)
Select Case Index
Case 0: Call Agregar
Case 1: Call Editar
Case 2: Call Eliminar
Case 3: Unload Me
Case 4: frmFilter.Show , Me
Case 5: Call mnuImprimir_Click
Case 6: FrmCIT.Show , Me
End Select
End Sub
'Abre el formulario para Editar el registro seleccionado en el ListView
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Private Sub Editar()
Dim i As Integer
' verifica que hay datos en el ListView y que hay uno seleccionado
If (LV.ListItems.Count = 0) Then
MsgBox "No hay ningún regisro para editar", vbInformation
Exit Sub
End If
If (LV.SelectedItem Is Nothing) Then
MsgBox "Debe seleccionar previamente un registro para poder editarlo", vbInformation
Exit Sub
End If
With FrmEditClau
' obtiene el elemento seleccionado
.lblID = LV.SelectedItem.Text
For i = 1 To 18
.Text1(i).Text = LV.SelectedItem.ListSubItems(i).Text
Next
.lblFecha = LV.SelectedItem.ListSubItems(1).Text
.IdRegistro = LV.SelectedItem.Text
.ACCION = editar_registro
.Show
End With
End Sub
' Elimina el registro actual seleccionado
'''''''''''''''''''''''''''''''''''''''''''''
Private Sub Eliminar()
If (LV.ListItems.Count = 0) Then
MsgBox "No hay ningún registro para eliminar", vbInformation
Exit Sub
End If
' verifica que hay datos en el ListView y que hay uno seleccionado
If (LV.SelectedItem Is Nothing) Then
MsgBox "No hay registro seleccionado para eliminar", vbInformation
Exit Sub
End If
With LV.SelectedItem
' pregunta
If MsgBox("Se va a eliminar el registro : " & vbNewLine & _
String(50, "-") & vbNewLine & _
"cod: " & .Text & vbNewLine & _
"voucher " & .ListSubItems(1).Text & vbNewLine & _
"mes: " & .ListSubItems(2).Text, _
vbExclamation + vbYesNo, "Eliminar") = vbYes Then
' Elimina
CNN.Execute "delete from Clientes where cod = " & .Text & ""
' refresca el recordset
rs.Requery 1
' vuelve a cargar los datos en el ListView
Call CargarListView(LV, rs)
End If
End With
End Sub
Sub Agregar()
' Acción
FrmEditClau.ACCION = AGREGAR_REGISTRO
FrmEditClau.lblFecha = Format(Date, "mm/dd/yyyy")
' Abre el Form
FrmEditClau.Show 1
End Sub
Sub Salir()
Call Desconectar
Unload Me
End
End Sub
Private Sub Form_Load()
' Abre la conexión
Call IniciarConexion
' carga el Recorset con todos los datos
rs.Open "select * from Clientes", CNN, adOpenStatic, adLockOptimistic
' llena el ListView
Call CargarListView(LV, rs)
End Sub
Private Sub LV_DblClick()
Call Editar
End Sub
Private Sub LV_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single)
Dim Item As ListItem
Set Item = LV.HitTest(x, y)
If Not Item Is Nothing And Button = vbRightButton Then
Item.Selected = True
Me.PopupMenu mnuEdicion
End If
End Sub
' menues
'''''''''''''''''''''''''''''
Private Sub mnuAgregar_Click()
Call Agregar
End Sub
Private Sub mnuEditarRegistro_Click()
Call Editar
End Sub
Private Sub mnuEliminarReg_Click()
Call Eliminar
End Sub
Private Sub mnuImprimir_Click()
Set DataReport1.DataSource = rs
DataReport1.Show 1
End Sub
' salir
''''''''''''''''''''''''
Private Sub mnuSalir_Click()
Call Salir
End Sub
Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
Dim ret As VbMsgBoxResult
ret = MsgBox("¿ Salir ?", vbInformation + vbYesNo)
If ret = vbNo Then
Cancel = True
Else
Call Salir
End If
End Sub
con este es el cuadro donde edito los datos
Option Explicit
Enum EACCION
AGREGAR_REGISTRO = 0
editar_registro = 1
End Enum
Public IdRegistro
Public ACCION As EACCION
Private Sub ChameleonBtn1_Click()
frmImpresionCIT3.Show
frmImpresionCIT3.Text1(0) = Text1(4)
frmImpresionCIT3.Text1(1) = Text1(8)
frmImpresionCIT3.Text1(2) = Text1(2)
frmImpresionCIT3.Text1(18) = Text1(15)
frmImpresionCIT3.Text1(19) = Text1(16)
frmImpresionCIT3.Text1(27) = Text1(17)
End Sub
Private Sub ChameleonBtn2_Click()
frmImpresionCIT7.Show
frmImpresionCIT7.Text1(0) = Text1(2)
frmImpresionCIT7.Text1(5) = Text1(16)
frmImpresionCIT7.Text1(6) = Text1(15)
frmImpresionCIT7.Text1(31) = Text1(17)
End Sub
Private Sub ChameleonBtn3_Click()
frmImpresionCIT4.Show
frmImpresionCIT4.Text1(0) = Text1(4)
frmImpresionCIT4.Text1(1) = Text1(8)
frmImpresionCIT4.Text1(2) = Text1(2)
frmImpresionCIT4.Text1(18) = Text1(15)
frmImpresionCIT4.Text1(19) = Text1(16)
frmImpresionCIT4.Text1(27) = Text1(17)
frmImpresionCIT4.Text1(26) = Text1(13)
End Sub
Private Sub ChameleonBtn4_Click()
frmImpresionCIT8.Show
End Sub
Private Sub ChameleonBtn5_Click()
frmImpresionCIT6.Show
End Sub
Private Sub ChameleonBtn6_Click()
frmImpresionCIT9.Show
End Sub
Private Sub ChameleonBtn7_Click()
frmImpresionCIT10.Show
End Sub
Private Sub ChameleonBtn8_Click()
frmImpresionCIT11.Show
End Sub
Private Sub ChameleonBtn9_Click()
frmImpresionCIT12.Show
End Sub
Private Sub cmdGuardar_Click()
Text1(11).Text = ((Val(Text1(9).Text) * Val(Text1(10).Text)))
Text1(22).Text = ((Val(Text1(11).Text * 0.3) / 1.19))
Dim sqlDate As String
sqlDate = Format(Date, "YYYY/MM/DD")
On Error GoTo ErrorSub
' Valida el codigo de barra que no este vacio
'''''''''''''''''''''''''''''''''''''''''''''
If Trim(Text1(12)) = "" Then
MsgBox "El Nº de Codigo de Barra no puede estar vacio", vbCritical, "Datos incompletos"
Text1(12).SetFocus
Exit Sub
' Valida el cit
''''''''''''''''''''''''''''''''
ElseIf Trim(Text1(13)) = "" Then
MsgBox "El Nº CIT no puede estar vacio", vbCritical, "Datos incompletos"
Text1(13).SetFocus
Exit Sub
' Valida la placa
''''''''''''''''''''''''''''''''
ElseIf Trim(Text1(2)) = "" Then
MsgBox "No se ha indicado el Nº de Placa", vbCritical, "Datos incompletos"
Text1(14).SetFocus
Exit Sub
' Valida el nº de motor
''''''''''''''''''''''''''''''''
ElseIf Trim(Text1(15)) = "" Then
MsgBox "No se ha indicado el Nº de Motor", vbCritical, "Datos incompletos"
Text1(15).SetFocus
Exit Sub
' Valida el nº de serie o chasis
'''''''''''''''''''''''''''''''''''''
ElseIf Trim(Text1(16)) = "" Then
MsgBox "No se ha indicado el Nº de Serie o Chasis", vbCritical, "Datos incompletos"
Text1(16).SetFocus
Exit Sub
' Valida el nº de certificado
'''''''''''''''''''''''''''''''''''''
ElseIf Trim(Text1(17)) = "" Then
MsgBox "No se ha indicado el Nº de Certificado", vbCritical, "Datos incompletos"
Text1(17).SetFocus
Exit Sub
End If
'Agrega el registro
'''''''''''''''''''''''''''''''
Select Case ACCION
Case editar_registro
CNN.Execute "UPDATE Clientes set voucher = '" & Text1(14) & _
"', contacto = '" & Text1(3) & _
"', razonsocial = '" & Text1(4) & _
"', nºderuc = '" & Text1(7) & _
"', direccion = '" & Text1(8) & _
"', inspector = '" & Text1(5) & _
"', tipodecertificado = '" & Text1(6) & _
"', cantidad = '" & Text1(9) & _
"', precio = '" & Text1(10) & _
"', total= '" & Text1(11) & _
"', codigodebarra = '" & Text1(12) & _
"', cit = '" & Text1(13) & _
"', nºdeplaca = '" & Text1(2) & _
"', nºdemotor = '" & Text1(15) & _
"', nºdeserieochasis = '" & Text1(16) & _
"', nºdecertificado = '" & Text1(17) & _
"', totalvoucher = '" & Text1(18) & _
"', boletaofactura = '" & Text1(19) & _
"', mes = '" & Text1(20) & _
"', lista = '" & Text1(21) & _
"', asignacion = '" & Text1(22) & _
"', observacion = '" & Text1(23) & _
"' where Cod = " & IdRegistro & ""
Case AGREGAR_REGISTRO
CNN.Execute "INSERT INTO Clientes (voucher, dia, contacto, razonsocial, nºderuc, direccion, inspector, tipodecertificado, cantidad, precio, total, codigodebarra, cit, nºdeplaca, nºdemotor, nºdeserieochasis, nºdecertificado, totalvoucher, boletaofactura, mes, lista, asignacion, observacion) VALUES('" & Text1(14) & "','" & sqlDate & "','" & Text1(3) & "','" & Text1(4) & "','" & Text1(7) & "','" & Text1(8) & "','" & Text1(5) & "','" & Text1(6) & "','" & Text1(9) & "','" & Text1(10) & "','" & Text1(11) & "','" & Text1(12) & "','" & Text1(13) & "','" & Text1(2) & "','" & Text1(15) & "','" & Text1(16) & "','" & Text1(17) & "','" & Text1(18) & "','" & Text1(19) & "','" & Text1(20) & "','" & Text1(21) & "','" & Text1(22) & "','" & Text1(23) & "')"
End Select
rs.Requery 1
Call CargarListView(FrmPrincipalClau.LV, rs)
DoEvents
Unload Me
Set FrmEditClau = Nothing
Exit Sub
ErrorSub:
MsgBox Err.Description
End Sub
Private Sub cmdCancelar_Click()
Unload Me
End Sub
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = vbKeyEscape Then
Unload Me
End If
End Sub
Private Sub Text1_Change(Index As Integer)
Text1(22) = Format(Text1(22), "#0.00")
Text1(11) = Format(Text1(11), "#0.00")
Text1(18) = Format(Text1(18), "#0.00")
End Sub
Private Sub Timer1_Timer()
If FrmEditClau.Caption = "[ Editar registro - Claudia ] [ INSTITUTO DE TRANSPORTES UNAC ]" Then
FrmEditClau.Caption = "[ INSTITUTO DE TRANSPORTES UNAC ]"
Else: FrmEditClau.Caption = "[ Editar registro - Claudia ] [ INSTITUTO DE TRANSPORTES UNAC ]"
End If
End Sub
-
y este es q quiero hacerlo bien para poder adicionar datos a los items
Option Explicit
Dim CNN As New ADODB.Connection
Dim rs As New ADODB.Recordset
Private Sub Check1_Click()
Text2.Text = ("x")
Text3.Text = (" ")
Text4.Text = (" ")
End Sub
Private Sub Check2_click()
Text3.Text = ("x")
Text2.Text = (" ")
Text4.Text = (" ")
End Sub
Private Sub Check3_Click()
Text4.Text = ("x")
Text2.Text = (" ")
Text3.Text = (" ")
End Sub
Private Sub Command1_Click()
Call Imprimir
End Sub
'Connection Confirmation
Private Sub Form_Load()
' establece la cadena de conexión a utilizar en la propiedad ConnectionString
CNN.ConnectionString = "Provider=SQLOLEDB.1;Password=qweqwe;Persist Security Info=True;User ID=omar;Initial Catalog=BASEFINAL;Data Source=SERVIDOR"
' abre la base de datos
CNN.Open
' Abre el recordset enviando la consulta sql
rs.Open "Select * from clientes", CNN, adOpenDynamic, adLockOptimistic
Command1.Enabled = False
End Sub
Private Sub cmdSave_Click()
If Text1(0) = "" Or Text1(1) = "" Then
MsgBox "Debe completar los datos", vbExclamation
Exit Sub
End If
Call Asignar_Datos
Call visualizar
rs.Update
MsgBox " Registro guardado", vbInformation, "Grabar"
desabilitaText
Command1.Enabled = True
End Sub
Private Sub Asignar_Datos()
rs("razonsocial") = Text1(0).Text
rs("direccion") = Text1(1).Text
rs("nºdeplaca") = Text1(2).Text
rs("marca") = Text1(3).Text
rs("modelo") = Text1(4).Text
rs("carroceria") = Text1(5).Text
rs("colores") = Text1(6).Text
rs("nºcilindros") = Text1(7).Text
rs("pesoneto") = Text1(8).Text
rs("cargautil") = Text1(9).Text
rs("pesobruto") = Text1(10).Text
rs("longitud") = Text1(11).Text
rs("ancho") = Text1(12).Text
rs("altura") = Text1(13).Text
rs("clase") = Text1(14).Text
rs("añofabrica") = Text1(15).Text
rs("combustible") = Text1(16).Text
rs("nºejes") = Text1(17).Text
rs("nºdemotor") = Text1(18).Text
rs("nºdeserieochasis") = Text1(19).Text
rs("nºpasajeros") = Text1(20).Text
rs("nºasientos") = Text1(21).Text
rs("nºruedas") = Text1(22).Text
rs("formula") = Text1(23).Text
rs("categoria") = Text1(24).Text
rs("potencia") = Text1(25).Text
rs("detalle1") = Text1(28).Text
rs("detalle2") = Text1(29).Text
rs("fecha") = Text1(30).Text
rs("modificacion") = Text2.Text
rs("montaje") = Text3.Text
rs("fabricacion") = Text4.Text
End Sub
Private Sub Imprimir()
Dim rsFicha As ADODB.Recordset
Set rsFicha = New Recordset
rsFicha.Open "Select * FROM clientes Where Cod=" & Text15, CNN, adOpenStatic, adLockReadOnly
If rsFicha.RecordCount > 0 Then
Set DataReport1.DataSource = rsFicha
DataReport1.Show
Else
MsgBox "No hay registro para imprimir ", vbInformation
End If
Unload Me
End Sub
Private Sub desabilitaText()
Text1(0).Enabled = False
Text1(1).Enabled = False
Text1(2).Enabled = False
Text1(3).Enabled = False
Text1(4).Enabled = False
Text1(5).Enabled = False
Text1(6).Enabled = False
Text1(7).Enabled = False
Text1(8).Enabled = False
Text1(9).Enabled = False
Text1(10).Enabled = False
Text1(11).Enabled = False
Text1(12).Enabled = False
Text1(13).Enabled = False
Text1(14).Enabled = False
Text1(15).Enabled = False
Text1(16).Enabled = False
Text1(17).Enabled = False
Text1(18).Enabled = False
Text1(19).Enabled = False
Text1(20).Enabled = False
Text1(21).Enabled = False
Text1(22).Enabled = False
Text1(23).Enabled = False
Text1(24).Enabled = False
Text1(25).Enabled = False
Text1(28).Enabled = False
Text1(29).Enabled = False
Text1(30).Enabled = False
Text2.Enabled = False
Text3.Enabled = False
Text4.Enabled = False
End Sub
' botón que mueve al primer previo
'''''''''''''''''''''''''''''''''''''''''''''''
Private Sub cmdMoveFirst_Click()
rs.MoveFirst
' Visualiza los datos en los textbox
Call Visualizar_Datos
End Sub
' botón que se desplaza al último registro
'''''''''''''''''''''''''''''''''''''''''''''''
Private Sub cmdMoveLast_Click()
' Ejecuta MoveLast y se posiciona en el último registro
rs.MoveLast
' Visualiza los datos en los textbox
Call Visualizar_Datos
End Sub
' Botón para el siguiente
'''''''''''''''''''''''''''''''''''''''''''''
Private Sub cmdMoveNext_Click()
rs.MoveNext
' Si no sobrepasó el final del recordset ...
If rs.EOF Then
' se posiciona en el ultimo
rs.MoveLast
MsgBox " Se está en el ultimo registro ", vbInformation
Else
' Visualiza los datos en los text box
Call Visualizar_Datos
End If
End Sub
' Command para ir al registro previo
''''''''''''''''''''''''''''''''''''''''''''''''''''''
Private Sub cmdMovePrevious_Click()
rs.MovePrevious
' si el recordset sobrepasó el comienzo se posiciona en el primero
If rs.BOF Then
rs.MoveFirst
MsgBox " este es el Primer registro ", vbInformation, " Primer registro"
Else
' Carga los datos
Call Visualizar_Datos
End If
End Sub
Private Sub visualizar()
Text15.Text = CLng(rs("cod"))
End Sub
Private Sub Visualizar_Datos()
Text15.Text = CLng(rs("cod"))
Text1(0) = rs("razonsocial")
Text1(1) = rs("direccion")
Text1(2) = rs("placa")
Text1(3) = rs("marca")
Text1(4) = rs("modelo")
Text1(5) = rs("carroceria")
Text1(6) = rs("colores")
Text1(7) = rs("cilindros")
Text1(8) = rs("pesoseco")
Text1(9) = rs("cargautil")
Text1(10) = rs("pesobruto")
Text1(11) = rs("longitud")
Text1(12) = rs("ancho")
Text1(13) = rs("altura")
Text1(14) = rs("clase")
Text1(15) = rs("año")
Text1(16) = rs("combustion")
Text1(17) = rs("nºejes")
Text1(18) = rs("nºdemotor")
Text1(19) = rs("nºchasis")
Text1(20) = rs("nºdepasajeros")
Text1(21) = rs("nºdeasientos")
Text1(22) = rs("nºderuedas")
Text1(23) = rs("formula")
Text1(24) = rs("categoria")
Text1(25) = rs("potencia")
Text1(28) = rs("detalle")
Text1(29) = rs("detalle2")
Text1(30) = rs("fecha")
see
End Sub
espero tu ayuda gracias!
-
Te cuento cuando yo hago trabajos en bases de datos, me gusta dejarlo bien optimizado, y escribo bastante codigo conforme al control de los datos para guardar y realizar consultas y demas, por ese motivo yo no utilizo una conexión por medio de codigo a la bd sino se me vuelve grandisimo el codigo y cuando termino :(
Yo utilizo un ambiente grafico para poder acceder a la base de datos si quieres puedo darte un ejemplo de ocmo se haria lo que quieres con ADODC1 para que te des una idea
ya que no manejo conexiones con codigo esos problemas no se me dan muy amenudo pero te puedo adelantar que la opcion de
CN.RECORSET.ADDNEW para que agas un bucle para agregar tus datos
creo que mañana puedo darte el codigo fuente subido aqui mismo
;D espero que te sirva y espera el codigo fuente mañana
-
se q es fastidioso pero todo mi codigo esta en ADO y no puedo cambiar todo a ADOCD me va a hacer todo un vuelta, quisiera una solucion mas simple a ADO .. .>,<
-
Estuve revisando tú codigo... Al momento en que realizas el Update, debes tomar en cuenta que valor tiene IdRegistro. Has un punto de interrupción y verifica que valor tiene IdRegistro en el momento en que haces el Update. Y me comentas...!
-
lo q m pasa es q carga pero siempre carga en el item 1 no carga el item 4 q cogi primero... y siempre guarda en el item 1 , quisiera saber q poner cuando hace click para q carge el item 4 y agrege en el item 4 por q siempre carga solo el primer item 1
-
Cuando seleccionas un registro, debes validar que tu Idregistro pertenezca al item4 que seleccionas o buscas... Ya que para actualizar debes buscarlo... Si tu idregistro pertenece al item4 te va a actualizar... Al momento de hacer el update el Idregistro no pertenece al item4... Has un punto de interrupción y verifica que valor tiene...
-
miguel mira mi cod cuando carga la otra ventana para agrega las modificaciones es
Private Sub Form_Load()
' establece la cadena de conexión a utilizar en la propiedad ConnectionString
CNN.ConnectionString = "Provider=SQLOLEDB.1;Password=qweqwe;Persist Security Info=True;User ID=omar;Initial Catalog=BASEFINAL;Data Source=SERVIDOR"
' abre la base de datos
CNN.Open
' Abre el recordset enviando la consulta sql
rs.Open "Select * from clientes", CNN, adOpenDynamic, adLockOptimistic
Text15.Text = CLng(rs("cod"))
Command1.Enabled = False
End Sub
como hago para q el text15.text tenga el mismo valor q el idregistro (en este caso en la otra ventana lblID )
-
miguel mira mi cod cuando carga la otra ventana para agrega las modificaciones es
Private Sub Form_Load()
' establece la cadena de conexión a utilizar en la propiedad ConnectionString
CNN.ConnectionString = "Provider=SQLOLEDB.1;Password=qweqwe;Persist Security Info=True;User ID=omar;Initial Catalog=BASEFINAL;Data Source=SERVIDOR"
' abre la base de datos
CNN.Open
' Abre el recordset enviando la consulta sql
rs.Open "Select * from clientes", CNN, adOpenDynamic, adLockOptimistic
Text15.Text = CLng(rs("cod"))
Command1.Enabled = False
End Sub
como hago para q el text15.text tenga el mismo valor q el idregistro (en este caso en la otra ventana lblID )
Te explico... Cuando carga la otra ventana no necesitas hacer
Private Sub Form_Load()
' establece la cadena de conexión a utilizar en la propiedad ConnectionString
CNN.ConnectionString = "Provider=SQLOLEDB.1;Password=qweqwe;Persist Security Info=True;User ID=omar;Initial Catalog=BASEFINAL;Data Source=SERVIDOR"
' abre la base de datos
CNN.Open
' Abre el recordset enviando la consulta sql
rs.Open "Select * from clientes", CNN, adOpenDynamic, adLockOptimistic
Text15.Text = CLng(rs("cod"))
Command1.Enabled = False
End Sub
Al momento en que llamas a la otra ventana, solo debes mostrar la información del registro que seleccionaste..
Lo que pasa es que no entiendo mucho tu codigo, tienes muchos frmImpresion y me dejan loco...!
Fijate para exponertelo mejor...
Tienes un formulario con un listview mostrando los registros... Al hacer doble click, mostraras un formulario para editar los valores de dicho registro...
Bien, hasta allí vamos bien...
El ColumnHeader del listview tiene:
(EJEMPLO)
Codigo Nombre Apellido Edad
121 Miguel Nuñez 24
122 Freddy Lopez 22
123 Leandro Ascierto 50 -> Jajajaja :D
Ahora bien, si seleccionamos el segundo registro para editar, mandamos la informacion a las cajas de textos del otro form... Así...
frmEdit.Text1(0) = lvwClientes.SelectedItem.Text
frmEdit.Text1(1) = lvwClientes.SelectedItem.ListSubItems(1).Text
frmEdit.Text1(2) = lvwClientes.SelectedItem.ListSubItems(2).Text
frmEdit.Text1(3) = lvwClientes.SelectedItem.ListSubItems(3).Text
frmEdit.Show
Para terminar, al momento de hacer el update, lo realizo de la siguiente manera...
Tomando en cuenta tu codigo...
Select Case ACCION
Case editar_registro
CNN.Execute "UPDATE Clientes set Nombre= '" & Text1(1) & _
"', Apellido = '" & Text1(2) & _
"', Edad = '" & Text1(3) & _
"' where Codigo = " & Text1(0).Text & ""
......................etc
Espero comprendas el codigo...!
-
hola miguel, mira puse este codigo pero no graba :S jajajaja xD
Option Explicit
Dim CNN As New ADODB.Connection
Public ACCION As EACCION
Dim rs As New ADODB.Recordset
Public IdRegistro
Private Sub Check1_Click()
Text2.Text = ("x")
Text3.Text = (" ")
Text4.Text = (" ")
End Sub
Private Sub Check2_click()
Text3.Text = ("x")
Text2.Text = (" ")
Text4.Text = (" ")
End Sub
Private Sub Check3_Click()
Text4.Text = ("x")
Text2.Text = (" ")
Text3.Text = (" ")
End Sub
Private Sub Command1_Click()
Call Imprimir
End Sub
Private Sub cmdSave_Click()
Select Case ACCION
Case editar_registro
CNN.Execute "UPDATE Clientes set razonsocial = '" & Text1(0) & "', direccion = '" & Text1(1) & "', nºdeplaca = '" & Text1(2) & "', marca = '" & Text1(3) & "', modelo = '" & Text1(4) & "', carroceria = '" & Text1(5) & "', colores = '" & Text1(6) & "', nºcilindros = '" & Text1(7) & "', pesoneto = '" & Text1(8) & "', cargautil = '" & Text1(9) & "', pesobruto = '" & Text1(10) & "', longitud = '" & Text1(11) & "', ancho = '" & Text1(12) & "', altura = '" & Text1(13) & "', clase = '" & Text1(14) & _
"', añofabrica = '" & Text1(15) & "', combustible = '" & Text1(16) & "', nºejes = '" & Text1(17) & "', nºdemotor = '" & Text1(18) & "', nºdeserieochasis = '" & Text1(19) & "', nºpasajeros = '" & Text1(20) & "', nºasientos = '" & Text1(21) & "', nºruedas = '" & Text1(22) & "', formula = '" & Text1(23) & "', categoria = '" & Text1(24) & "', potencia = '" & Text1(25) & "', detalle1 = '" & Text1(28) & "', detalle2 = '" & Text1(29) & "', fecha = '" & Text1(30) & "', modificacion = '" & Text2 & "', montaje = '" & Text3 & "', fabricacion = '" & Text4 & _
"' where Cod = " & IdRegistro & ""
End Select
End Sub
Private Sub Imprimir()
Dim rsFicha As ADODB.Recordset
Set rsFicha = New Recordset
rsFicha.Open "Select * FROM clientes Where Cod=" & Text15, CNN, adOpenStatic, adLockReadOnly
If rsFicha.RecordCount > 0 Then
Set DataReport1.DataSource = rsFicha
DataReport1.Show
Else
MsgBox "No hay registro para imprimir ", vbInformation
End If
Unload Me
End Sub
Private Sub desabilitaText()
Text1(0).Enabled = False
Text1(1).Enabled = False
Text1(2).Enabled = False
Text1(3).Enabled = False
Text1(4).Enabled = False
Text1(5).Enabled = False
Text1(6).Enabled = False
Text1(7).Enabled = False
Text1(8).Enabled = False
Text1(9).Enabled = False
Text1(10).Enabled = False
Text1(11).Enabled = False
Text1(12).Enabled = False
Text1(13).Enabled = False
Text1(14).Enabled = False
Text1(15).Enabled = False
Text1(16).Enabled = False
Text1(17).Enabled = False
Text1(18).Enabled = False
Text1(19).Enabled = False
Text1(20).Enabled = False
Text1(21).Enabled = False
Text1(22).Enabled = False
Text1(23).Enabled = False
Text1(24).Enabled = False
Text1(25).Enabled = False
Text1(28).Enabled = False
Text1(29).Enabled = False
Text1(30).Enabled = False
Text2.Enabled = False
Text3.Enabled = False
Text4.Enabled = False
End Sub
' botón que mueve al primer previo
'''''''''''''''''''''''''''''''''''''''''''''''
Private Sub cmdMoveFirst_Click()
rs.MoveFirst
' Visualiza los datos en los textbox
Call Visualizar_Datos
End Sub
' botón que se desplaza al último registro
'''''''''''''''''''''''''''''''''''''''''''''''
Private Sub cmdMoveLast_Click()
' Ejecuta MoveLast y se posiciona en el último registro
rs.MoveLast
' Visualiza los datos en los textbox
Call Visualizar_Datos
End Sub
' Botón para el siguiente
'''''''''''''''''''''''''''''''''''''''''''''
Private Sub cmdMoveNext_Click()
rs.MoveNext
' Si no sobrepasó el final del recordset ...
If rs.EOF Then
' se posiciona en el ultimo
rs.MoveLast
MsgBox " Se está en el ultimo registro ", vbInformation
Else
' Visualiza los datos en los text box
Call Visualizar_Datos
End If
End Sub
' Command para ir al registro previo
''''''''''''''''''''''''''''''''''''''''''''''''''''''
Private Sub cmdMovePrevious_Click()
rs.MovePrevious
' si el recordset sobrepasó el comienzo se posiciona en el primero
If rs.BOF Then
rs.MoveFirst
MsgBox " este es el Primer registro ", vbInformation, " Primer registro"
Else
' Carga los datos
Call Visualizar_Datos
End If
End Sub
Private Sub visualizar()
Text15.Text = CLng(rs("cod"))
End Sub
Private Sub Visualizar_Datos()
Text15.Text = CLng(rs("cod"))
End Sub
otra cosa porq no agrega es q porque creo q se cruza con la conexion original :s por eso no agrega mas! ;S por eso trataba d hacer otra conex para q actualize aparte!
-
Ya que estamos en un pequeño tema de base de datos , alguién me puede aclarar porque no me funciona la clápsula LIMIT en ADO, aqui esta la consulta que hago : "Select * FROM Tabla LIMIT 0, 10", y pués eso me da error, al quitarle el LIMIT si funciona pero a lo mejor es que LIMIT no se puede usar en Ado o algo por eso pido ayuda :D ... Saludos
-
miguel no crees q pueda utilizar esta conex tipo impresion pero para q agrege a la base usada?
Private Sub Imprimir()
Dim rsFicha As ADODB.Recordset
Set rsFicha = New Recordset
rsFicha.Open "Select * FROM clientes Where Cod=" & Text15, CNN, adOpenStatic, adLockReadOnly
If rsFicha.RecordCount > 0 Then
Set DataReport1.DataSource = rsFicha
DataReport1.Show
Else
MsgBox "No hay registro para imprimir ", vbInformation
End If
Unload Me
End Sub
-
Si puedes usar otra conex....
-
ntonces uso otra conex pa q enlace y funcione como asignador d datos nuevos? me puedes dar un ejemplo?
gracias!
-
El mejor ejemplo que puedo darte, practico, con el codigo y totalmente funcional es:
Bajar Formulario ABM con Access de RecursosVB (http://www.recursosvisualbasic.com.ar/htm/utilidades-codigo-fuente/zip/form-abm-con-ado-access.zip)
Creo que he pedido que veas este proyecto anteriormente...! ::)
-
no tngo permiso pa dscargarlo :S
-
Como asi? No comprendo...!
-
bueno ya los busq manualmnt
si ya lo tngo toda mi base es en referencia a ese prog
pero como ago otra conex pa q no interfiera con la conx principal ;S
-
Otra conex no... Declara otro recordset...
Dim RSLoquequieras as ADODB.Recordset
-
Te cuento cuando yo hago trabajos en bases de datos, me gusta dejarlo bien optimizado, y escribo bastante codigo conforme al control de los datos para guardar y realizar consultas y demas, por ese motivo yo no utilizo una conexión por medio de codigo a la bd sino se me vuelve grandisimo el codigo y cuando termino :(
Permiteme discernir. El código se vuelve grandisimo es cierto, pero eso no significa que tenga que volverse confuso.
Yo fui un consumidor persistente de "conexión visual" pero siempre consumes mas recursos. Create un modulo y pon las sentencias SQL en procedimientos o funciones según sea el caso y allí tengas metidas todas las cientos de consultas que puedas tener.
Cosa que en vez de tener:
rs.Open "Select campo1, campo2, campo3, campo4 from clientes where campo1= " & IdCliente, CNN, adOpenDynamic, adLockOptimistic
tengas:
rs.Open BuscaCliente(IdCliente), CNN, adOpenDynamic, adLockOptimistic
Y como veras es fácil de entender y mantener.
Bueno al final es solo una sugerencia, si a ti te va muy bien como lo estas haciendo y realmente eres mas productivo entonces siga adelante. Yo deje de usar ese método porque empece a encontrar limitaciones en particular cuando hacia consultas complejas y en general cuando migre de Access a Firebird, pero esto ya seria un tema personal.
-
Excelente acotación YvanB.
-
Ya que estamos en un pequeño tema de base de datos , alguién me puede aclarar porque no me funciona la clápsula LIMIT en ADO, aqui esta la consulta que hago : "Select * FROM Tabla LIMIT 0, 10", y pués eso me da error, al quitarle el LIMIT si funciona pero a lo mejor es que LIMIT no se puede usar en Ado o algo por eso pido ayuda :D ... Saludos
hola, tengo entendido que no hacepta la instruccion LIMIT no se si es por ADO o Access.
Saludos.
Edit: juro por dios que no fui yo :o
-
usa TOP..
-
YvanB
haber corrigeme si esta bien ocmo e puesto esto
rs.Open Cod(Idregistro), CNN, adOpenDynamic, adLockOptimistic
esta bien asi... porque igual no me carga :s me sale q no esta registrado!
-
Hola que tal por que no mejor envias tu codigo al msn para verlo mejor o sibelo alguna pagina para poder descagarlo y asi de achaso poder correjirlo y envuiarte la solucion por que esto ya esta dando muchas vueltas ;D mi msn es k_arlytos@hotmail.com
solo enviame donde esta tu problema y con la tabla que estas trabajando
-
...
Edit: juro por dios que no fui yo :o
WTF????
...
que no esta registrado rs? o CNN? si no esta registrado rs tenes q crearlo con
Dim rs as ADODB.Recordset
Set rs = New ADODB.Recordset
y despues de usarlo, destruirlo con:
Set rs = Nothing
-
el rs si ta registrado lo q me sale q no esta registrado es el
"cod"(idregistro)
-
el rs si ta registrado lo q me sale q no esta registrado es el
"cod"(idregistro)
y que es Cod? una funcion? un array?
-
no coco el cod es el registro de mi bd ... osea es el codigo para cada registro ingresado!
lo q necesito es una conex q cuando ingrese mas datos los edite. y no puedo conectarlo todavia!
-
no coco el cod es el registro de mi bd ... osea es el codigo para cada registro ingresado!
lo q necesito es una conex q cuando ingrese mas datos los edite. y no puedo conectarlo todavia!
podrias subir el code? yo no entiendo mucho de bases de datos, pero imagino que el problema es algo simple!
saludos
-
este es mi codigo oki en la cual da el primer cuadro de un listview y puedo editar algunos datos
este cuadro se llama frmeditclau
Option Explicit
Enum EACCION
AGREGAR_REGISTRO = 0
editar_registro = 1
End Enum
Public IdRegistro
Public ACCION As EACCION
Private Sub ChameleonBtn1_Click()
frmImpresionCIT3.Show
frmImpresionCIT3.Text1(0) = Text1(4)
frmImpresionCIT3.Text1(1) = Text1(8)
frmImpresionCIT3.Text1(2) = Text1(2)
frmImpresionCIT3.Text1(18) = Text1(15)
frmImpresionCIT3.Text1(19) = Text1(16)
frmImpresionCIT3.Text1(27) = Text1(17)
End Sub
Private Sub ChameleonBtn2_Click()
frmImpresionCIT7.Show
frmImpresionCIT7.Text1(0) = Text1(2)
frmImpresionCIT7.Text1(5) = Text1(16)
frmImpresionCIT7.Text1(6) = Text1(15)
frmImpresionCIT7.Text1(31) = Text1(17)
End Sub
Private Sub ChameleonBtn3_Click()
frmImpresionCIT4.Show
frmImpresionCIT4.Text1(0) = Text1(4)
frmImpresionCIT4.Text1(1) = Text1(8)
frmImpresionCIT4.Text1(2) = Text1(2)
frmImpresionCIT4.Text1(18) = Text1(15)
frmImpresionCIT4.Text1(19) = Text1(16)
frmImpresionCIT4.Text1(27) = Text1(17)
frmImpresionCIT4.Text1(26) = Text1(13)
End Sub
Private Sub ChameleonBtn4_Click()
frmImpresionCIT8.Show
End Sub
Private Sub ChameleonBtn5_Click()
frmImpresionCIT6.Show
End Sub
Private Sub ChameleonBtn6_Click()
frmImpresionCIT9.Show
End Sub
Private Sub ChameleonBtn7_Click()
frmImpresionCIT10.Show
End Sub
Private Sub ChameleonBtn8_Click()
frmImpresionCIT11.Show
End Sub
Private Sub ChameleonBtn9_Click()
frmImpresionCIT12.Show
End Sub
Private Sub cmdGuardar_Click()
Text1(11).Text = ((Val(Text1(9).Text) * Val(Text1(10).Text)))
Text1(22).Text = ((Val(Text1(11).Text * 0.3) / 1.19))
Dim sqlDate As String
sqlDate = Format(Date, "YYYY/MM/DD")
On Error GoTo ErrorSub
' Valida el codigo de barra que no este vacio
'''''''''''''''''''''''''''''''''''''''''''''
If Trim(Text1(12)) = "" Then
MsgBox "El Nº de Codigo de Barra no puede estar vacio", vbCritical, "Datos incompletos"
Text1(12).SetFocus
Exit Sub
' Valida el cit
''''''''''''''''''''''''''''''''
ElseIf Trim(Text1(13)) = "" Then
MsgBox "El Nº CIT no puede estar vacio", vbCritical, "Datos incompletos"
Text1(13).SetFocus
Exit Sub
' Valida la placa
''''''''''''''''''''''''''''''''
ElseIf Trim(Text1(2)) = "" Then
MsgBox "No se ha indicado el Nº de Placa", vbCritical, "Datos incompletos"
Text1(14).SetFocus
Exit Sub
' Valida el nº de motor
''''''''''''''''''''''''''''''''
ElseIf Trim(Text1(15)) = "" Then
MsgBox "No se ha indicado el Nº de Motor", vbCritical, "Datos incompletos"
Text1(15).SetFocus
Exit Sub
' Valida el nº de serie o chasis
'''''''''''''''''''''''''''''''''''''
ElseIf Trim(Text1(16)) = "" Then
MsgBox "No se ha indicado el Nº de Serie o Chasis", vbCritical, "Datos incompletos"
Text1(16).SetFocus
Exit Sub
' Valida el nº de certificado
'''''''''''''''''''''''''''''''''''''
ElseIf Trim(Text1(17)) = "" Then
MsgBox "No se ha indicado el Nº de Certificado", vbCritical, "Datos incompletos"
Text1(17).SetFocus
Exit Sub
End If
'Agrega el registro
'''''''''''''''''''''''''''''''
Select Case ACCION
Case editar_registro
CNN.Execute "UPDATE Clientes set voucher = '" & Text1(14) & _
"', contacto = '" & Text1(3) & _
"', razonsocial = '" & Text1(4) & _
"', nºderuc = '" & Text1(7) & _
"', direccion = '" & Text1(8) & _
"', inspector = '" & Text1(5) & _
"', tipodecertificado = '" & Text1(6) & _
"', cantidad = '" & Text1(9) & _
"', precio = '" & Text1(10) & _
"', total= '" & Text1(11) & _
"', codigodebarra = '" & Text1(12) & _
"', cit = '" & Text1(13) & _
"', nºdeplaca = '" & Text1(2) & _
"', nºdemotor = '" & Text1(15) & _
"', nºdeserieochasis = '" & Text1(16) & _
"', nºdecertificado = '" & Text1(17) & _
"', totalvoucher = '" & Text1(18) & _
"', boletaofactura = '" & Text1(19) & _
"', mes = '" & Text1(20) & _
"', lista = '" & Text1(21) & _
"', asignacion = '" & Text1(22) & _
"', observacion = '" & Text1(23) & _
"' where Cod = " & IdRegistro & ""
Case AGREGAR_REGISTRO
CNN.Execute "INSERT INTO Clientes (voucher, dia, contacto, razonsocial, nºderuc, direccion, inspector, tipodecertificado, cantidad, precio, total, codigodebarra, cit, nºdeplaca, nºdemotor, nºdeserieochasis, nºdecertificado, totalvoucher, boletaofactura, mes, lista, asignacion, observacion) VALUES('" & Text1(14) & "','" & sqlDate & "','" & Text1(3) & "','" & Text1(4) & "','" & Text1(7) & "','" & Text1(8) & "','" & Text1(5) & "','" & Text1(6) & "','" & Text1(9) & "','" & Text1(10) & "','" & Text1(11) & "','" & Text1(12) & "','" & Text1(13) & "','" & Text1(2) & "','" & Text1(15) & "','" & Text1(16) & "','" & Text1(17) & "','" & Text1(18) & "','" & Text1(19) & "','" & Text1(20) & "','" & Text1(21) & "','" & Text1(22) & "','" & Text1(23) & "')"
End Select
rs.Requery 1
Call CargarListView(FrmPrincipalClau.LV, rs)
DoEvents
Unload Me
Set FrmEditClau = Nothing
Exit Sub
ErrorSub:
MsgBox Err.Description
End Sub
Private Sub cmdCancelar_Click()
Unload Me
End Sub
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = vbKeyEscape Then
Unload Me
End If
End Sub
Private Sub Text1_Change(Index As Integer)
Text1(22) = Format(Text1(22), "#0.00")
Text1(11) = Format(Text1(11), "#0.00")
Text1(18) = Format(Text1(18), "#0.00")
End Sub
Private Sub Timer1_Timer()
If FrmEditClau.Caption = "[ Editar registro - Claudia ] [ INSTITUTO DE TRANSPORTES UNAC ]" Then
FrmEditClau.Caption = "[ INSTITUTO DE TRANSPORTES UNAC ]"
Else: FrmEditClau.Caption = "[ Editar registro - Claudia ] [ INSTITUTO DE TRANSPORTES UNAC ]"
End If
End Sub
y este es un cuadro de los 7 q tngo para agregar datos diferentes
este cuadro se activa cuando aprieto ChameleonBtn1 el cuadro se llama frmimpresioncit3
Option Explicit
Dim CNN As New ADODB.Connection
Public ACCION As EACCION
Dim rs As New ADODB.Recordset
Dim RSLoquequieras As ADODB.Recordset
Public IdRegistro
Private Sub Check1_Click()
Text2.Text = ("x")
Text3.Text = (" ")
Text4.Text = (" ")
End Sub
Private Sub Check2_click()
Text3.Text = ("x")
Text2.Text = (" ")
Text4.Text = (" ")
End Sub
Private Sub Check3_Click()
Text4.Text = ("x")
Text2.Text = (" ")
Text3.Text = (" ")
End Sub
Private Sub Command1_Click()
Call Imprimir
End Sub
'Connection Confirmation
Private Sub Form_Load()
' establece la cadena de conexión a utilizar en la propiedad ConnectionString
CNN.ConnectionString = "Provider=SQLOLEDB.1;Password=qweqwe;Persist Security Info=True;User ID=omar;Initial Catalog=BASEFINAL;Data Source=SERVIDOR"
' abre la base de datos
CNN.Open
' Abre el recordset enviando la consulta sql
rs.Open "Select * from clientes", CNN, adOpenDynamic, adLockOptimistic
' muestra los datos en los text
Command1.Enabled = False
End Sub
Private Sub cmdSave_Click()
Select Case ACCION
Case editar_registro
CNN.Execute "UPDATE Clientes set razonsocial = '" & Text1(0) & "', direccion = '" & Text1(1) & "', nºdeplaca = '" & Text1(2) & "', marca = '" & Text1(3) & "', modelo = '" & Text1(4) & "', carroceria = '" & Text1(5) & "', colores = '" & Text1(6) & "', nºcilindros = '" & Text1(7) & "', pesoneto = '" & Text1(8) & "', cargautil = '" & Text1(9) & "', pesobruto = '" & Text1(10) & "', longitud = '" & Text1(11) & "', ancho = '" & Text1(12) & "', altura = '" & Text1(13) & "', clase = '" & Text1(14) & _
"', añofabrica = '" & Text1(15) & "', combustible = '" & Text1(16) & "', nºejes = '" & Text1(17) & "', nºdemotor = '" & Text1(18) & "', nºdeserieochasis = '" & Text1(19) & "', nºpasajeros = '" & Text1(20) & "', nºasientos = '" & Text1(21) & "', nºruedas = '" & Text1(22) & "', formula = '" & Text1(23) & "', categoria = '" & Text1(24) & "', potencia = '" & Text1(25) & "', detalle1 = '" & Text1(28) & "', detalle2 = '" & Text1(29) & "', fecha = '" & Text1(30) & "', modificacion = '" & Text2 & "', montaje = '" & Text3 & "', fabricacion = '" & Text4 & _
"' where Cod = " & IdRegistro & ""
End Select
rs.Requery 1
DoEvents
Set FrmEditClau = Nothing
Exit Sub
ErrorSub:
MsgBox Err.Description
End Sub
Private Sub Imprimir()
Dim rsFicha As ADODB.Recordset
Set rsFicha = New Recordset
rsFicha.Open "Select * FROM clientes Where Cod=" & Text15, CNN, adOpenStatic, adLockReadOnly
If rsFicha.RecordCount > 0 Then
Set DataReport1.DataSource = rsFicha
DataReport1.Show
Else
MsgBox "No hay registro para imprimir ", vbInformation
End If
Unload Me
End Sub
Private Sub desabilitaText()
Text1(0).Enabled = False
Text1(1).Enabled = False
Text1(2).Enabled = False
Text1(3).Enabled = False
Text1(4).Enabled = False
Text1(5).Enabled = False
Text1(6).Enabled = False
Text1(7).Enabled = False
Text1(8).Enabled = False
Text1(9).Enabled = False
Text1(10).Enabled = False
Text1(11).Enabled = False
Text1(12).Enabled = False
Text1(13).Enabled = False
Text1(14).Enabled = False
Text1(15).Enabled = False
Text1(16).Enabled = False
Text1(17).Enabled = False
Text1(18).Enabled = False
Text1(19).Enabled = False
Text1(20).Enabled = False
Text1(21).Enabled = False
Text1(22).Enabled = False
Text1(23).Enabled = False
Text1(24).Enabled = False
Text1(25).Enabled = False
Text1(28).Enabled = False
Text1(29).Enabled = False
Text1(30).Enabled = False
Text2.Enabled = False
Text3.Enabled = False
Text4.Enabled = False
End Sub
' botón que mueve al primer previo
'''''''''''''''''''''''''''''''''''''''''''''''
Private Sub cmdMoveFirst_Click()
rs.MoveFirst
' Visualiza los datos en los textbox
Call Visualizar_Datos
End Sub
' botón que se desplaza al último registro
'''''''''''''''''''''''''''''''''''''''''''''''
Private Sub cmdMoveLast_Click()
' Ejecuta MoveLast y se posiciona en el último registro
rs.MoveLast
' Visualiza los datos en los textbox
Call Visualizar_Datos
End Sub
' Botón para el siguiente
'''''''''''''''''''''''''''''''''''''''''''''
Private Sub cmdMoveNext_Click()
rs.MoveNext
' Si no sobrepasó el final del recordset ...
If rs.EOF Then
' se posiciona en el ultimo
rs.MoveLast
MsgBox " Se está en el ultimo registro ", vbInformation
Else
' Visualiza los datos en los text box
Call Visualizar_Datos
End If
End Sub
' Command para ir al registro previo
''''''''''''''''''''''''''''''''''''''''''''''''''''''
Private Sub cmdMovePrevious_Click()
rs.MovePrevious
' si el recordset sobrepasó el comienzo se posiciona en el primero
If rs.BOF Then
rs.MoveFirst
MsgBox " este es el Primer registro ", vbInformation, " Primer registro"
Else
' Carga los datos
Call Visualizar_Datos
End If
End Sub
Private Sub visualizar()
Text15.Text = CLng(rs("cod"))
End Sub
Private Sub Visualizar_Datos()
Text15.Text = CLng(rs("cod"))
End Sub
-
YvanB
haber corrigeme si esta bien ocmo e puesto esto
rs.Open Cod(Idregistro), CNN, adOpenDynamic, adLockOptimistic
esta bien asi... porque igual no me carga :s me sale q no esta registrado!
Hola disculpa la demora por responder, me robaron la laptop y no me habia conectado hasta ahora.
Bueno a lo que me referia es que (en tu ejemplo) COD es una función que tu creas para no tener todo el codigo SQL puesto aqui, lo que pasa es que mi comentario fue en respuesta a una reflexión que hizo nuestro amigo wolf_kolf.
Ejemplo:
public function COD(Idregistro as Integer)
COD= "Select .... " & Idregistro & "...."
end function
Y luego
rs.Open Cod(Idregistro), CNN, adOpenDynamic, adLockOptimistic
Nunca te va a funcionar sino creas la función COD, MiConsulta o como desees llamarle.
insisto: era en respuesta a hacer un código mas legible según lo veo.
-
sta bien ntonces asi?
Private Sub Form_Load()
' establece la cadena de conexión a utilizar en la propiedad ConnectionString
CNN.ConnectionString = "Provider=SQLOLEDB.1;Password=qweqwe;Persist Security Info=True;User ID=omar;Initial Catalog=BASEFINAL;Data Source=SERVIDOR"
' abre la base de datos
CNN.Open
' Abre el recordset enviando la consulta sql
rs.Open COD(IdRegistro), CNN, adOpenDynamic, adLockOptimistic
' muestra los datos en los text
Command1.Enabled = False
End Sub
Private Sub cmdSave_Click()
Select Case ACCION
Case editar_registro
CNN.Execute "UPDATE Clientes set razonsocial = '" & Text1(0) & "', direccion = '" & Text1(1) & "', nºdeplaca = '" & Text1(2) & "', marca = '" & Text1(3) & "', modelo = '" & Text1(4) & "', carroceria = '" & Text1(5) & "', colores = '" & Text1(6) & "', nºcilindros = '" & Text1(7) & "', pesoneto = '" & Text1(8) & "', cargautil = '" & Text1(9) & "', pesobruto = '" & Text1(10) & "', longitud = '" & Text1(11) & "', ancho = '" & Text1(12) & "', altura = '" & Text1(13) & "', clase = '" & Text1(14) & _
"', añofabrica = '" & Text1(15) & "', combustible = '" & Text1(16) & "', nºejes = '" & Text1(17) & "', nºdemotor = '" & Text1(18) & "', nºdeserieochasis = '" & Text1(19) & "', nºpasajeros = '" & Text1(20) & "', nºasientos = '" & Text1(21) & "', nºruedas = '" & Text1(22) & "', formula = '" & Text1(23) & "', categoria = '" & Text1(24) & "', potencia = '" & Text1(25) & "', detalle1 = '" & Text1(28) & "', detalle2 = '" & Text1(29) & "', fecha = '" & Text1(30) & "', modificacion = '" & Text2 & "', montaje = '" & Text3 & "', fabricacion = '" & Text4 & _
"' where Cod = " & IdRegistro & ""
End Select
End Sub
-
Ok Tarde pero hay sta, en el foro de VB 6.0 hay un post que se llama Codigo Fuente SoftMEGA miralo y comparalo talvez te ayude