Visual Basic Foro

Programación => Bases de Datos => Mensaje iniciado por: omarinho23 en Febrero 16, 2010, 11:20:57 am

Título: Agregar datos adicionales a mi BD.
Publicado 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
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
Título: Re:Agregar datos adicionales a mi BD.
Publicado por: wolf_kof en Febrero 16, 2010, 02:11:11 pm
Sube el Codigo Fuente para que lo pueda ver y te digo
Título: Re:Agregar datos adicionales a mi BD.
Publicado por: omarinho23 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
Título: Re:Agregar datos adicionales a mi BD.
Publicado por: omarinho23 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!
Título: Re:Agregar datos adicionales a mi BD.
Publicado por: wolf_kof 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

Título: Re:Agregar datos adicionales a mi BD.
Publicado por: omarinho23 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 .. .>,<
Título: Re:Agregar datos adicionales a mi BD.
Publicado por: ssccaann43 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...!
Título: Re:Agregar datos adicionales a mi BD.
Publicado por: omarinho23 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
Título: Re:Agregar datos adicionales a mi BD.
Publicado por: ssccaann43 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...
Título: Re:Agregar datos adicionales a mi BD.
Publicado por: omarinho23 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 )
Título: Re:Agregar datos adicionales a mi BD.
Publicado por: ssccaann43 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...!
Título: Re:Agregar datos adicionales a mi BD.
Publicado por: omarinho23 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!
Título: Re:Agregar datos adicionales a mi BD.
Publicado por: skyweb07 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
 
Título: Re:Agregar datos adicionales a mi BD.
Publicado por: omarinho23 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
Título: Re:Agregar datos adicionales a mi BD.
Publicado por: ssccaann43 en Febrero 20, 2010, 12:25:08 pm
Si puedes usar otra conex....
Título: Re:Agregar datos adicionales a mi BD.
Publicado por: omarinho23 en Febrero 20, 2010, 12:40:22 pm
ntonces uso otra conex pa q enlace y funcione como asignador d datos nuevos? me puedes dar un ejemplo?

gracias!
Título: Re:Agregar datos adicionales a mi BD.
Publicado por: ssccaann43 en Febrero 20, 2010, 12:57:44 pm
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...!  ::)
Título: Re:Agregar datos adicionales a mi BD.
Publicado por: omarinho23 en Febrero 20, 2010, 12:58:20 pm
no tngo permiso pa dscargarlo :S
Título: Re:Agregar datos adicionales a mi BD.
Publicado por: ssccaann43 en Febrero 20, 2010, 12:59:22 pm
Como asi? No comprendo...!
Título: Re:Agregar datos adicionales a mi BD.
Publicado por: omarinho23 en Febrero 20, 2010, 01:04:13 pm
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
Título: Re:Agregar datos adicionales a mi BD.
Publicado por: ssccaann43 en Febrero 20, 2010, 01:35:16 pm
Otra conex no... Declara otro recordset...
Dim RSLoquequieras as ADODB.Recordset
Título: Re:Agregar datos adicionales a mi BD.
Publicado por: YAcosta en Febrero 21, 2010, 04:48:16 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  :(

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.
Título: Re:Agregar datos adicionales a mi BD.
Publicado por: ssccaann43 en Febrero 22, 2010, 12:41:29 pm
Excelente acotación YvanB.
Título: Re:Agregar datos adicionales a mi BD.
Publicado por: LeandroA en Febrero 22, 2010, 06:22:25 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

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
Título: Re:Agregar datos adicionales a mi BD.
Publicado por: seba123neo en Febrero 22, 2010, 10:46:04 pm
usa TOP..
Título: Re:Agregar datos adicionales a mi BD.
Publicado por: omarinho23 en Febrero 23, 2010, 02:34:44 pm
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!
Título: Re:Agregar datos adicionales a mi BD.
Publicado por: k_arlytos en Febrero 23, 2010, 03:23:18 pm
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
Título: Re:Agregar datos adicionales a mi BD.
Publicado por: coco en Febrero 23, 2010, 03:49:19 pm
...
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

Código: (vb) [Seleccionar]
Dim rs as ADODB.Recordset
Set rs = New ADODB.Recordset

y despues de usarlo, destruirlo con:
Código: (vb) [Seleccionar]
Set rs = Nothing
Título: Re:Agregar datos adicionales a mi BD.
Publicado por: omarinho23 en Febrero 23, 2010, 04:44:05 pm
el rs si ta registrado lo q me sale q no esta registrado es el

"cod"(idregistro)
Título: Re:Agregar datos adicionales a mi BD.
Publicado por: coco en Febrero 23, 2010, 04:56:47 pm
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?
Título: Re:Agregar datos adicionales a mi BD.
Publicado por: omarinho23 en Febrero 23, 2010, 05:09:27 pm
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!
Título: Re:Agregar datos adicionales a mi BD.
Publicado por: coco en Febrero 23, 2010, 05:33:29 pm
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
Título: Re:Agregar datos adicionales a mi BD.
Publicado por: omarinho23 en Febrero 23, 2010, 05:38:45 pm
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
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

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

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

Título: Re:Agregar datos adicionales a mi BD.
Publicado por: YAcosta en Febrero 23, 2010, 07:15:50 pm
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.
Título: Re:Agregar datos adicionales a mi BD.
Publicado por: omarinho23 en Febrero 25, 2010, 02:43:25 pm
sta bien ntonces asi?

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 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
Título: Re:Agregar datos adicionales a mi BD.
Publicado por: wolf_kof en Febrero 25, 2010, 10:48:20 pm
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