• Sábado 21 de Diciembre de 2024, 12:11

Autor Tema:  Datagrid  (Leído 5714 veces)

kapricorniana

  • Nuevo Miembro
  • *
  • Mensajes: 19
    • Ver Perfil
Datagrid
« en: Martes 28 de Marzo de 2006, 18:15 »
0
que dificil se me hace esto pero ahi terca yo en aprender......pues ahi va mi problem......: usando ado utilice varias tablas para hacer mi consulta en un data grid y ahora desea agregar, modificar y eliminar (pero solo eliminar aparentemente por medio de una llave q se llamara estado donde 0 sera estado activo y 1 estado eliminado) ....hasta ahora voy avanzando esto pero ya me tranque y todo me sale a medias :(    ojala alguien pueda ayudarme a terminar esto y principalmente a entenderlo..gracias de antemano

Dim RstPec As New ADODB.Recordset
Dim Temp As New ADODB.Recordset
Dim sql As String
Dim RstNuevo As New ADODB.Recordset
Option Explicit



Private Sub CmdEAnular_Click()

End Sub

Private Sub Command1_Click()
Dim pru As Integer
    If RstPec.RecordCount = 1 Then
        RstPec.MoveFirst
        Do While Not RstPec.EOF
            RstPec.Delete
            RstPec.MoveNext
        Loop
        Me.TxtCodProducto.SetFocus
        Me.TxtSubTotal.Text = ""
        Me.TxtTotal.Text = ""
        Exit Sub
    End If
    If RstPec.RecordCount > 0 Then
        If RstPec.BOF Or RstPec.EOF Then
            MsgBox "Selecccionar un Registro para Eliminar"
        Else
            pru = RstPec!NUMERO
            RstPec.Delete adAffectCurrent
        End If
       
    End If
End Sub


Private Sub Command2_Click()

Picture2.Visible = True
TxtAreaOrigen.Enabled = False
TxtArea.Enabled = True
TxtSubArea.Enabled = True
TxtUarea.Enabled = True
TxtCodAreaDestino.Enabled = False
TxtAreaDestino.Enabled = True
TxtSubareaDestino.Enabled = True
TxtUareaDestino.Enabled = True
TxtCodProducto.Enabled = True
TxtPartida.Enabled = True
TxtDescripcion.Enabled = True
TxtUnidad.Enabled = True
TxtCantidad.Enabled = True
TxtPrecio.Enabled = True
TxtSubTotal.Enabled = True
TxtStock.Enabled = True
TxtTotal.Enabled = True

If Command2.Caption = "&Grabar" Then
  Command2.Caption = "&Modificar"
   Call Modo("M")
   Call Activa(False)
   MsgBox "SE MODIFICO CON EXITO ..!", vbExclamation
   Command1.Enabled = True
ElseIf Command2.Caption = "&Modificar" Then
   Command2.Caption = "&Grabar"
   Activa (True)
   Command1.Enabled = False

End If
   Refrescar

    Debug.Print sql
    DbPrin.Execute sql
    RstPec.Requery
Else
If Command2.Caption = "&Modificar" Then

Command2.Caption = "&Grabar"
Activa (True)
End If
Refrescar
End If
End Sub


Public Sub Modo(Gm As String)
DbPrin.Execute "Execute MANTEPECOSABIEN '" & Gm & "','" & TxtArea & "','" & TxtAreaOrigen & "','" & TxtArea & "','" & TxtUarea & "'"
End Sub

Public Sub Refrescar()
Command1.Refresh
Command2.Refresh
Command3.Refresh
End Sub

Public Sub Activa(TF As Boolean)
TxtArea.Enabled = TF
TxtSubArea.Enabled = TF
TxtUarea.Enabled = TF
TxtAreaDestino.Enabled = TF
TxtSubareaDestino.Enabled = TF
TxtUareaDestino.Enabled = TF
TxtCodProducto.Enabled = TF
TxtPartida.Enabled = TF
TxtDescripcion.Enabled = TF
TxtUnidad.Enabled = TF
TxtCantidad.Enabled = TF
TxtPrecio.Enabled = TF
TxtSubTotal.Enabled = TF
TxtStock.Enabled = TF
TxtTotal.Enabled = TF
End Sub

Private Sub Command3_Click()
Unload Me
End
End Sub

Private Sub DgEdicion_Click()
If RstPec.RecordCount > 0 Then
TxtAreaOrigen = RstPec(1)
TxtArea = RstPec(2)
TxtSubArea = RstPec(3)
TxtUarea = RstPec(4)
TxtCodAreaDestino = RstPec(5)
TxtAreaDestino = RstPec(6)
TxtSubareaDestino = RstPec(7)
TxtUareaDestino = RstPec(8)
TxtCodProducto = RstPec(9)
TxtPartida = RstPec(10)
TxtDescripcion = RstPec(11)
TxtUnidad = RstPec(12)
TxtCantidad = RstPec(13)
TxtPrecio = RstPec(14)
TxtSubTotal = RstPec(15)
TxtStock = RstPec(16)
TxtTotal = RstPec(15)
             
             End If
End Sub

Private Sub Form_Load()
Dim sql As String
FrmPassword.Mascar.ApplySkin Me.hwnd
Me.Top = 50
Me.Left = 1150
Picture1.BackColor = RGB(210, 218, 227)
Picture2.BackColor = RGB(210, 218, 227)
Label1.BackColor = RGB(210, 218, 227)
Label2.BackColor = RGB(210, 218, 227)
Label3.BackColor = RGB(210, 218, 227)
Label4.BackColor = RGB(210, 218, 227)
Label5.BackColor = RGB(210, 218, 227)
Label6.BackColor = RGB(210, 218, 227)
Dim RstNuevo As New ADODB.Recordset
Me.TxtUsuario = UserActive
Me.TxtFechMod = Date
sql = "SELECT right(('000'+convert(nvarchar,CODTAB)),2)+' '+DESCRIPCION as opcion FROM MODALIDAD"

    AsignaRst RstNuevo, sql, DbPrin
    CmbModalidad.AddItem "Seleccionar Opcion"
   
    Do While Not RstNuevo.EOF
        CmbModalidad.AddItem RstNuevo!opcion
        RstNuevo.MoveNext
    Loop
    CmbModalidad.ListIndex = 0
   
    sql = "SELECT DOCUMENTO.NUMERO, dbo.CAB_SALIDA.CODAREAO, AREAS_1.AREA AS AREA_ORIGEN, AREAS_1.SUBAREA AS SUB_AREA_ORIGEN, " & _
                      "AREAS_1.U_AREA AS U_AREA_ORIGEN, dbo.CAB_SALIDA.CODAREAD, dbo.AREAS.AREA AS AREA_D, dbo.AREAS.SUBAREA AS SUBAREA_D, " & _
                      "dbo.AREAS.U_AREA AS U_AREA_D, dbo.DET_SALIDA.COD AS CODBIEN, dbo.BIEN.PARTIDA, dbo.BIEN.DESCRIPCION, dbo.BIEN.UNIDAD, " & _
                      "dbo.DET_SALIDA.CANTIDAD, dbo.DET_SALIDA.PRECIO, dbo.DET_SALIDA.CANTIDAD * dbo.DET_SALIDA.PRECIO AS SUBTOTAL, " & _
                      "dbo.DET_SALIDA.STOCK_ALDIA AS STOCK, dbo.CAB_SALIDA.FECHMOD, dbo.CAB_SALIDA.USERMOD, dbo.CAB_SALIDA.FECHA, " & _
                      "dbo.MODALIDAD.DESCRIPCION AS MODALIDAD " & _
                      "FROM CAB_SALIDA INNER JOIN " & _
                      "dbo.DET_SALIDA ON dbo.CAB_SALIDA.IDSALIDA = dbo.DET_SALIDA.IDSALIDA INNER JOIN " & _
                      "dbo.DOCUMENTO ON dbo.CAB_SALIDA.IDSALIDA = dbo.DOCUMENTO.IDSALIDA INNER JOIN " & _
                      "dbo.AREAS ON dbo.CAB_SALIDA.CODAREAD = dbo.AREAS.CODAREA INNER JOIN " & _
                      "dbo.AREAS AREAS_1 ON dbo.CAB_SALIDA.CODAREAO = AREAS_1.CODAREA INNER JOIN " & _
                      "dbo.BIEN ON dbo.DET_SALIDA.COD = dbo.BIEN.COD INNER JOIN " & _
                      "dbo.MODALIDAD ON dbo.CAB_SALIDA.MODALIDAD = dbo.MODALIDAD.CodTab WHERE(dbo.CAB_SALIDA.ESTADO = '0')AND (dbo.DOCUMENTO.ANO_TRAB = '2006') ORDER BY dbo.DOCUMENTO.NUMERO "
                         
      Debug.Print sql
    AsignaRst RstPec, sql, DbPrin
    If RstPec.RecordCount > 0 Then
        Set Me.DgEdicion.DataSource = RstPec
       
    Else
        MsgBox "No existe ninguna Pecosa!!"
    End If
   
   
End Sub

Private Sub TxtEBusca_Change()

 sql = "SELECT DOCUMENTO.NUMERO, dbo.CAB_SALIDA.CODAREAO, AREAS_1.AREA AS AREA_ORIGEN, AREAS_1.SUBAREA AS SUB_AREA_ORIGEN, " & _
                      "AREAS_1.U_AREA AS U_AREA_ORIGEN, dbo.CAB_SALIDA.CODAREAD, dbo.AREAS.AREA AS AREA_D, dbo.AREAS.SUBAREA AS SUBAREA_D, " & _
                      "dbo.AREAS.U_AREA AS U_AREA_D, dbo.DET_SALIDA.COD AS CODBIEN, dbo.BIEN.PARTIDA, dbo.BIEN.DESCRIPCION, dbo.BIEN.UNIDAD, " & _
                      "dbo.DET_SALIDA.CANTIDAD, dbo.DET_SALIDA.PRECIO, dbo.DET_SALIDA.CANTIDAD * dbo.DET_SALIDA.PRECIO AS SUBTOTAL, " & _
                      "dbo.DET_SALIDA.STOCK_ALDIA AS STOCK, dbo.CAB_SALIDA.FECHMOD, dbo.CAB_SALIDA.USERMOD, dbo.CAB_SALIDA.FECHA, " & _
                      "dbo.MODALIDAD.DESCRIPCION AS MODALIDAD " & _
                      "FROM CAB_SALIDA INNER JOIN " & _
                      "dbo.DET_SALIDA ON dbo.CAB_SALIDA.IDSALIDA = dbo.DET_SALIDA.IDSALIDA INNER JOIN " & _
                      "dbo.DOCUMENTO ON dbo.CAB_SALIDA.IDSALIDA = dbo.DOCUMENTO.IDSALIDA INNER JOIN " & _
                      "dbo.AREAS ON dbo.CAB_SALIDA.CODAREAD = dbo.AREAS.CODAREA INNER JOIN " & _
                      "dbo.AREAS AREAS_1 ON dbo.CAB_SALIDA.CODAREAO = AREAS_1.CODAREA INNER JOIN " & _
                      "dbo.BIEN ON dbo.DET_SALIDA.COD = dbo.BIEN.COD INNER JOIN " & _
                      "dbo.MODALIDAD ON dbo.CAB_SALIDA.MODALIDAD = dbo.MODALIDAD.CodTab where Numero = '" & TxtEBusca.Text & "'"
                     
AsignaRst RstPec, sql, DbPrin
If RstPec.RecordCount > 0 Then Set Me.DgEdicion.DataSource = RstPec
End Sub

..........
PD.: A veces creo q estoy mal desde las vistas de mi base de datos pero al menos quisiera una idea de como seguir...gracias

capricorniana1977@hotmail.com-----> Karmen :comp:
K@rmen

kapricorniana

  • Nuevo Miembro
  • *
  • Mensajes: 19
    • Ver Perfil
Re: Datagrid
« Respuesta #1 en: Martes 28 de Marzo de 2006, 21:16 »
0
:blink: creo q ta muy komplicado q nadie me ayuda [/size]
K@rmen

kapricorniana

  • Nuevo Miembro
  • *
  • Mensajes: 19
    • Ver Perfil
Re: Datagrid
« Respuesta #2 en: Miércoles 29 de Marzo de 2006, 16:50 »
0
hola holaaa hay alguien por ahi q se compadezca y me ayude please o al menos q me pase algunos ejemplos con grids q contengan varias datos de varias tablas para darme una idea.......porq este mismo problema porfissss :(
K@rmen

cpmario

  • Miembro HIPER activo
  • ****
  • Mensajes: 629
    • Ver Perfil
    • http://www.cpimario.com
Re: Datagrid
« Respuesta #3 en: Miércoles 29 de Marzo de 2006, 18:49 »
0
Te recomiendo que coloques tu pregunta en el foro que no es para principiantes:

http://foros.solocodigo.com/index.php?showforum=39

 :comp:

kapricorniana

  • Nuevo Miembro
  • *
  • Mensajes: 19
    • Ver Perfil
Re: Datagrid
« Respuesta #4 en: Miércoles 29 de Marzo de 2006, 21:23 »
0
<span style='font-family:Courier'>ya lo puse hoy tempranito pero todos lo ven y naide me ayuda :(  :scream:  &lt;_&lt; </span>
K@rmen

cpmario

  • Miembro HIPER activo
  • ****
  • Mensajes: 629
    • Ver Perfil
    • http://www.cpimario.com
Re: Datagrid
« Respuesta #5 en: Jueves 30 de Marzo de 2006, 05:42 »
0
En el foro que te dije no está tu pregunta, verifica el foro.
 :comp:

DiabloRojo

  • Miembro MUY activo
  • ***
  • Mensajes: 220
    • Ver Perfil
Re: Datagrid
« Respuesta #6 en: Jueves 30 de Marzo de 2006, 14:35 »
0
Hola Kapricorniana.
No especificas bien si ya puedes agregar y modificar...
Pero creo que la idea sería que en tu consulta para llenar el datagrid te trajeras los campos claves de las tablas que usas, luego, con estas claves, puedes realizar las operaciones de agregar y modificar trabajando directamente sobre cada tabla involucrada.
Para eliminar tus tablas (aquí no estoy seguro si deberían ser todas o sólo una) deberían tener un campo llave (que tu llamas estado). En todo caso la eliminación realmente funcionaría como una modificación a éste campo(s) en tu(s) tabla(s).
Al menos eso es lo que se me ocurre... Si puedes colocar las estructuras de tus tablas e indicar las relaciones tal vez alguien con más experiencia en bases de datos pueda ayudarte mejor.

Espero que te sea de utilidad mi comentario.

Saludos.


DiabloRojo

kapricorniana

  • Nuevo Miembro
  • *
  • Mensajes: 19
    • Ver Perfil
Re: Datagrid
« Respuesta #7 en: Jueves 30 de Marzo de 2006, 16:41 »
0
:unsure: lo q pasa es q recien estoy aprendiendo y no enteindo lo q me quieres decir...estoy q aprendo solo viendo y con ejemplos porq sql es nuevo para mi y lo q intento eliminar logicamente es una fila del datagrid y el problema es q mi datagrid contiene varias tablas y por eso me sale error cada vez q intento eliminar con delete asi q opte mejor eliminar logicamente pero la idea la tengo pero no se como seria la sintaxis porq la q intento me sale error de sintaxis
sql="update cab_salida set estado=1 where idsalida"
K@rmen

kapricorniana

  • Nuevo Miembro
  • *
  • Mensajes: 19
    • Ver Perfil
Re: Datagrid
« Respuesta #8 en: Jueves 30 de Marzo de 2006, 17:05 »
0
:comp: este es el diagrama de la bd y el formulario q toy haciendo... por eso puse mi problema aqui porq en avanzados se q las explicaciones q me den seran generales y no las entendere y necesito urgente q me ayude alguien a terminar con esto porq recien el prox mes podre pagar el curso para poder aprender bien bien esto de sql ....y todo me sale a medias modificar a medias y agregar aun no he intentado :(




capricorniana1977@hotmail.com

pd...no puedo enviar jpg ni doc...como envio?me rebota cuando intento
K@rmen

kapricorniana

  • Nuevo Miembro
  • *
  • Mensajes: 19
    • Ver Perfil
Re: Datagrid
« Respuesta #9 en: Jueves 30 de Marzo de 2006, 17:20 »
0
ahh muchisimas gracias diablo rojo por haberte tomado el tiempo de contestarme
...solo busco algunos ejemplos o aunq sea uno para guiarme de datagrids q contengan varias tablas y como eliminar filas de estos datagrids, agregar y modificar seria chevere pero hasta ahora no  doy con nada parecido

Karmen
K@rmen

DiabloRojo

  • Miembro MUY activo
  • ***
  • Mensajes: 220
    • Ver Perfil
Re: Datagrid
« Respuesta #10 en: Sábado 1 de Abril de 2006, 02:42 »
0
Hola kapricorniana.
Pásame la estructura de tus tablas y la consulta sql que usas para llenar el datagrid al correo fieldsoflight@gmail.com. A ver que podemos hacer...

Saludos


DiabloRojo

DiabloRojo

  • Miembro MUY activo
  • ***
  • Mensajes: 220
    • Ver Perfil
Re: Datagrid
« Respuesta #11 en: Miércoles 5 de Abril de 2006, 23:34 »
0
Qué tal Kapricorniana?
Te mandé un pequeño ejemplo al mail capricorniana1977@... está hecho rápido y tiene sus defectos pero al menos muestra que lo que te propones hacer es válido. Recibí tu mail pero lamento decirte que no pude acceder a la base de datos. El ejemplo está en Access.

Espero que te sea de utilidad. Si te sirve dime para postearlo al foro.


DiabloRojo.


Se me olvidaba... uso la referencia al ADO 2.5

kapricorniana

  • Nuevo Miembro
  • *
  • Mensajes: 19
    • Ver Perfil
Re: Datagrid
« Respuesta #12 en: Lunes 10 de Abril de 2006, 21:29 »
0
:( no ha llegado nada a mi correo diablito y ahora?
K@rmen

DiabloRojo

  • Miembro MUY activo
  • ***
  • Mensajes: 220
    • Ver Perfil
Re: Datagrid
« Respuesta #13 en: Martes 11 de Abril de 2006, 04:48 »
0
Hola Kapricorniana.
Te mandé nuevamente el ejemplo.

Saludos

DiabloRojo.

kapricorniana

  • Nuevo Miembro
  • *
  • Mensajes: 19
    • Ver Perfil
Re: Datagrid
« Respuesta #14 en: Miércoles 12 de Abril de 2006, 16:31 »
0
:huh: pues nada diablito....no me llega ningun archivo a capricorniana1977@hotmail.com


k@rmen[/b][/i]
K@rmen

DiabloRojo

  • Miembro MUY activo
  • ***
  • Mensajes: 220
    • Ver Perfil
Re: Datagrid
« Respuesta #15 en: Miércoles 12 de Abril de 2006, 21:14 »
0
La verdad no sé qué pasa... lo mando por aquí a ver...

Este era el cuerpo del mensaje que te enviaba:
Citar
Hola Kapricorniana.
Revisé el correo el lunes y recibí tu mail. Lamentablemente la base de datos que me pasas parece ser de sqlserver2000 el cual no poseo. De todas formas traté de hacer un ejemplo utilizando access. Usé tu idea de hacer una especie de "borrado lógico". Comentarios sobre el ejemplo:
-No hago validaciones así que ten cuidado con lo que ingresas.
-Agrego datos utilizando recordsets. Esta no es la forma más adecuada de agregar datos (no me quise complicar con instrucciones sql).
-No logro que al momento de agregar pedidos se actualice el datagrid1 del formulario frmPedidos :-S por lo tanto debes cerrar y volver a abrir el formulario.
-El código no es consistente. De un formulario a otro hago lo mismo de maneras distintas ;-)
-La mayor parte del código no está comentado.

Bueno, aparte de los comentarios anteriores espero que te sea de utilidad.

Saludos.


DiabloRojo

Te recuerdo y a los amigos que bajen el ejemplo que lo hice al vuelo y muchas cosas no están hechas de la mejor manera...

DiabloRojo.
El mensaje contiene 1 archivo adjunto. Debes ingresar o registrarte para poder verlo y descargarlo.

kapricorniana

  • Nuevo Miembro
  • *
  • Mensajes: 19
    • Ver Perfil
Re: Datagrid
« Respuesta #16 en: Miércoles 12 de Abril de 2006, 22:20 »
0
:rolleyes: gracias diablito....no es lo que quiero pero gracias de todas maneras y ya me inscribi en un curso full visual basic y sql .........con todo con la programacion :)
K@rmen

DiabloRojo

  • Miembro MUY activo
  • ***
  • Mensajes: 220
    • Ver Perfil
Re: Datagrid
« Respuesta #17 en: Jueves 13 de Abril de 2006, 15:44 »
0
Hola kapricorniana.
Lamento que no te haya sido útil. Sólo me queda decirte que plantees o replantees la pregunta de otra forma para saber exactamente qué es lo que estás buscando.

Saludos.


DiabloRojo.