Autor Tema: Agregar datos adicionales a mi BD.  (Leído 19775 veces)

0 Usuarios y 1 Visitante están viendo este tema.

omarinho23

  • Megabyte
  • ***
  • Mensajes: 105
  • Reputación: +0/-1
    • Ver Perfil
Agregar datos adicionales a mi BD.
« 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
Código: [Seleccionar]

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
« última modificación: Febrero 21, 2010, 03:35:06 am por cobein »

wolf_kof

  • Visitante
Re:Agregar datos adicionales a mi BD.
« Respuesta #1 en: Febrero 16, 2010, 02:11:11 pm »
Sube el Codigo Fuente para que lo pueda ver y te digo

omarinho23

  • Megabyte
  • ***
  • Mensajes: 105
  • Reputación: +0/-1
    • Ver Perfil
Re:Agregar datos adicionales a mi BD.
« Respuesta #2 en: Febrero 16, 2010, 02:27:35 pm »
ESTA ES MI CONEX
Código: [Seleccionar]
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
Código: [Seleccionar]
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

Código: [Seleccionar]
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

omarinho23

  • Megabyte
  • ***
  • Mensajes: 105
  • Reputación: +0/-1
    • Ver Perfil
Re:Agregar datos adicionales a mi BD.
« Respuesta #3 en: Febrero 16, 2010, 02:27:50 pm »

y este es q quiero hacerlo bien para poder adicionar datos a los items

Código: [Seleccionar]

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!

wolf_kof

  • Visitante
Re:Agregar datos adicionales a mi BD.
« Respuesta #4 en: Febrero 16, 2010, 04:07:13 pm »
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


omarinho23

  • Megabyte
  • ***
  • Mensajes: 105
  • Reputación: +0/-1
    • Ver Perfil
Re:Agregar datos adicionales a mi BD.
« Respuesta #5 en: Febrero 17, 2010, 11:26:47 am »
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 .. .>,<

ssccaann43

  • Moderador
  • Terabyte
  • *****
  • Mensajes: 970
  • Reputación: +97/-58
    • Ver Perfil
    • Sistemas Nuñez, Consultores y Soporte, C.A.
Re:Agregar datos adicionales a mi BD.
« Respuesta #6 en: Febrero 17, 2010, 12:12:37 pm »
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...!
Miguel Núñez.

omarinho23

  • Megabyte
  • ***
  • Mensajes: 105
  • Reputación: +0/-1
    • Ver Perfil
Re:Agregar datos adicionales a mi BD.
« Respuesta #7 en: Febrero 17, 2010, 12:38:26 pm »
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

ssccaann43

  • Moderador
  • Terabyte
  • *****
  • Mensajes: 970
  • Reputación: +97/-58
    • Ver Perfil
    • Sistemas Nuñez, Consultores y Soporte, C.A.
Re:Agregar datos adicionales a mi BD.
« Respuesta #8 en: Febrero 17, 2010, 12:45:17 pm »
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 Núñez.

omarinho23

  • Megabyte
  • ***
  • Mensajes: 105
  • Reputación: +0/-1
    • Ver Perfil
Re:Agregar datos adicionales a mi BD.
« Respuesta #9 en: Febrero 17, 2010, 01:07:23 pm »
miguel mira mi cod cuando carga la otra ventana para agrega las modificaciones es
Citar
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 )

ssccaann43

  • Moderador
  • Terabyte
  • *****
  • Mensajes: 970
  • Reputación: +97/-58
    • Ver Perfil
    • Sistemas Nuñez, Consultores y Soporte, C.A.
Re:Agregar datos adicionales a mi BD.
« Respuesta #10 en: Febrero 17, 2010, 01:24:13 pm »
miguel mira mi cod cuando carga la otra ventana para agrega las modificaciones es
Citar
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
Código: [Seleccionar]
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í...

Código: [Seleccionar]
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...
Código: [Seleccionar]
    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...!
Miguel Núñez.

omarinho23

  • Megabyte
  • ***
  • Mensajes: 105
  • Reputación: +0/-1
    • Ver Perfil
Re:Agregar datos adicionales a mi BD.
« Respuesta #11 en: Febrero 20, 2010, 11:22:24 am »
hola miguel, mira puse este codigo pero no graba :S jajajaja xD

Código: [Seleccionar]
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!
« última modificación: Febrero 20, 2010, 12:22:23 pm por omarinho23 »

skyweb07

  • Bytes
  • *
  • Mensajes: 30
  • Reputación: +1/-2
    • Ver Perfil
Re:Agregar datos adicionales a mi BD.
« Respuesta #12 en: Febrero 20, 2010, 12:00:23 pm »
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
 

omarinho23

  • Megabyte
  • ***
  • Mensajes: 105
  • Reputación: +0/-1
    • Ver Perfil
Re:Agregar datos adicionales a mi BD.
« Respuesta #13 en: Febrero 20, 2010, 12:23:56 pm »
miguel no crees q pueda utilizar esta conex tipo impresion pero para q agrege a la base usada?
Código: [Seleccionar]
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

ssccaann43

  • Moderador
  • Terabyte
  • *****
  • Mensajes: 970
  • Reputación: +97/-58
    • Ver Perfil
    • Sistemas Nuñez, Consultores y Soporte, C.A.
Re:Agregar datos adicionales a mi BD.
« Respuesta #14 en: Febrero 20, 2010, 12:25:08 pm »
Si puedes usar otra conex....
Miguel Núñez.