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

insertar y añadir

Estas en el tema de insertar y añadir en el foro de Visual Basic clásico en Foros del Web. Hola a todos, necesito ayuda, es que no se como empezar.Vereis tengo un textbox, un combobox,un msflexgrid y un boton y una base de datos ...
  #1 (permalink)  
Antiguo 23/04/2010, 07:23
Avatar de Sergio18  
Fecha de Ingreso: abril-2010
Ubicación: No quieras saberlo
Mensajes: 94
Antigüedad: 14 años, 8 meses
Puntos: 0
insertar y añadir

Hola a todos, necesito ayuda, es que no se como empezar.Vereis tengo un textbox, un combobox,un msflexgrid y un boton y una base de datos de acces con una tabla con todas las provincias de España, y otra con las ciudades y lo que tengo que hacer es en el textbox pongo una ciudad y al insertarla en el msflexgrid me tiene que aparecer la ciudad , la provincias y el id (de la provincia)de esa ciudad en la misma fila y todos ello tiene que estar en otra tabla de acces que no sea ni ciudad, ni provincias, llamemosla "topo".

Saludos y gracias
  #2 (permalink)  
Antiguo 26/04/2010, 01:53
Avatar de Sergio18  
Fecha de Ingreso: abril-2010
Ubicación: No quieras saberlo
Mensajes: 94
Antigüedad: 14 años, 8 meses
Puntos: 0
Respuesta: insertar y añadir

Llevo este codigo:

Código vb:
Ver original
  1. Option Explicit
  2. Public rsCiudad2 As Recordset
  3. Public cnPrueba As Connection
  4.  
  5. Private Sub Command1_Click()
  6. If Text1 = "" Or Combo1 = "" Then
  7. MsgBox "Debe ingresar datos en los campos", vbCritical, Me.Caption
  8. Exit Sub
  9. End If
  10. 'crear un objeto conexion
  11. Set cnPrueba = New Connection
  12. 'Establecer sus propiedades
  13.     With cnPrueba
  14.         .Provider = "Microsoft.Jet.oledb.4.0"
  15.         .ConnectionString = "prueba.mdb"
  16.     End With
  17. cnPrueba.Open
  18.  
  19. Set rsCiudad2 = New Recordset
  20. 'Establecer sus propiedades
  21. With rsCiudad2
  22.     .CursorLocation = adUseClient
  23.     .Open "SELECT * FROM Ciudad2", cnPrueba, adOpenDynamic, adLockOptimistic
  24. End With
  25. 'Añadimos los registros del formulario a la base de datos
  26. With rsCiudad2
  27. .AddNew
  28. .Fields("idprovincia") = Text2.Text
  29. .Fields("Ciudad") = Text1.Text
  30. .Fields("Provincia") = Combo1.Text
  31. .Update
  32. End With
  33. MsgBox ("Datos Añadidos")
  34. 'Refrescamos el formulario para que se borren los datos introducidos
  35. With rsCiudad2
  36. MSFlexGrid1.Refresh
  37. Text1.Text = ""
  38. Text2.Text = ""
  39. Combo1.Text = ""
  40. .Update
  41. End With
  42. 'Añadimos el formulario al msflexgrid
  43. While Not rsCiudad2.EOF
  44. MSFlexGrid1.AddItem rsCiudad2("idprovincia") & vbTab & rsCiudad2("ciudad") & vbTab & rsCiudad2("Provincia")
  45. rsCiudad2.MoveNext
  46. Wend
  47.     'Insertamos la cabezera
  48.    MSFlexGrid1.TextMatrix(0, 0) = "idprovincia"
  49.     MSFlexGrid1.TextMatrix(0, 1) = "ciudad"
  50.     MSFlexGrid1.TextMatrix(0, 2) = "Provincia"
  51.     Screen.MousePointer = vbDefault
  52. End Sub
  53.  
  54. Private Sub Command2_Click()
  55. 'Pregunta
  56. If MsgBox("¿Está seguro de que desea eliminar el registro?", vbQuestion + vbYesNo, Me.Caption) = vbNo Then Exit Sub
  57. 'Se elimina de la base de datos.
  58. Set cnPrueba = New ADODB.Connection
  59. cnPrueba.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\prueba.mdb;Persist Security Info=False"
  60. cnPrueba.Open
  61. cnPrueba.Execute "delete from Ciudad2 "
  62. cnPrueba.Close
  63. Set cnPrueba = Nothing
  64. 'Se elimina el registro del msflexgrid
  65. MSFlexGrid1.RemoveItem (MSFlexGrid1.Row)
  66. End Sub
  67.  
  68. Private Sub Command3_Click()
  69. Unload Me
  70. End
  71. End Sub
  72.  
  73. Private Sub Command4_Click()
  74. Set cnPrueba = New Connection
  75. 'Establecer sus propiedades
  76.     With cnPrueba
  77.         .Provider = "Microsoft.Jet.oledb.4.0"
  78.         .ConnectionString = "prueba.mdb"
  79.      End With
  80.     cnPrueba.Open
  81. Set rsCiudad2 = New Recordset
  82. 'Establecer sus propiedades
  83. With rsCiudad2
  84.     .CursorLocation = adUseClient
  85.     cnPrueba.Execute "UPDATE provincias SET Ciudad='" & Text1 & ",provincia='" & Combo1 & "'Where idprovincia  = " & Text2 & ""
  86.     .ActiveConnection = cnPrueba
  87.     .LockType = adLockOptimistic
  88. End With
  89. With rsCiudad2
  90.     MSFlexGrid1.TextMatrix(MSFlexGrid1.Row, 1) = frmciudades.Text1.Text
  91.     End With
  92. End Sub
  93.  
  94. Private Sub Command5_Click()
  95. Set cnPrueba = New Connection
  96. 'Establecer sus propiedades
  97.     With cnPrueba
  98.         .Provider = "Microsoft.Jet.oledb.4.0"
  99.         .ConnectionString = "prueba.mdb"
  100.     End With
  101. cnPrueba.Open
  102. Set rsCiudad2 = New Recordset
  103. 'Establecer sus propiedades
  104. With rsCiudad2
  105.     .CursorLocation = adUseClient
  106.     .Open "SELECT * FROM Ciudad2", cnPrueba, adOpenDynamic, adLockOptimistic
  107. End With
  108. 'Limpiamos el formulario
  109. With rsCiudad2
  110. MSFlexGrid1.Refresh
  111. Text1.Text = ""
  112. Combo1.Text = ""
  113. Text2.Text = ""
  114. .Update
  115. End With
  116. End Sub
  117. Private Sub Form_Load()
  118. Set cnPrueba = New Connection
  119. 'Establecer sus propiedades
  120.     With cnPrueba
  121.         .Provider = "Microsoft.Jet.oledb.4.0"
  122.         .ConnectionString = "prueba.mdb"
  123.     End With
  124. cnPrueba.Open
  125. 'Visualizar el formulario
  126.    frmciudades.Show
  127.     frmciudades.Refresh
  128.     MSFlexGrid1.Refresh
  129. 'crear un objeto conexion
  130.    Set cnPrueba = New Connection
  131. 'Establecer sus propiedades
  132.     With cnPrueba
  133.         .Provider = "Microsoft.Jet.oledb.4.0"
  134.         .ConnectionString = "prueba.mdb"
  135.     End With
  136. cnPrueba.Open
  137.  
  138.     Set rsCiudad2 = New Recordset
  139. 'Establecer sus propiedades
  140.    With rsCiudad2
  141.         .Source = "select idprovincia,ciudad,provincia from Ciudad2"
  142.         .ActiveConnection = cnPrueba
  143.         .LockType = adLockOptimistic
  144.     End With
  145. rsCiudad2.Open Options:=adCmdText
  146. 'Añadimos la cabezera
  147.    MSFlexGrid1.Cols = 3
  148.     MSFlexGrid1.FixedCols = 0
  149.     While Not rsCiudad2.EOF
  150.     MSFlexGrid1.AddItem rsCiudad2("idprovincia") & vbTab & rsCiudad2("Ciudad") & vbTab & rsCiudad2("provincia")
  151.     rsCiudad2.MoveNext
  152.     Wend
  153.     'Insertamos la cabezera
  154.    MSFlexGrid1.TextMatrix(0, 0) = "idprovincia"
  155.     MSFlexGrid1.TextMatrix(0, 1) = "Ciudad"
  156.     MSFlexGrid1.TextMatrix(0, 2) = "Provincia"
  157.     Screen.MousePointer = vbDefault
  158.    
  159. MSFlexGrid1.ColWidth(1) = 2000
  160. MSFlexGrid1.ColWidth(2) = 2000
  161. End Sub
  162.  
  163. Private Sub MSFlexGrid1_Click()
  164. frmciudades.Text2.Text = MSFlexGrid1.TextMatrix(MSFlexGrid1.Row, 0)
  165. frmciudades.Text1.Text = MSFlexGrid1.TextMatrix(MSFlexGrid1.Row, 1)
  166. frmciudades.Combo1.Text = MSFlexGrid1.TextMatrix(MSFlexGrid1.Row, 2)
  167. End Sub

Lo que me falta es que cuando yo ponga la ciudad y la provincia en el msflexgrid tambien se ponga el Id que concuerde con la provincia que yo ponga, alguien se le ocurre algo??

Saludos
  #3 (permalink)  
Antiguo 27/04/2010, 03:15
Avatar de XYON126  
Fecha de Ingreso: abril-2006
Mensajes: 272
Antigüedad: 18 años, 8 meses
Puntos: 0
Respuesta: insertar y añadir

Hola sergio!

No se si te servira pero bueno, Ya te has planteado que todas las BBDD y sobre todo la de ACCES usan un ID unico para cada dato, posiblemente este ID si lo llamas igual al resto de datos que necesitas te sirva de identificador como comentas pues es fijo he invariable en la BBD hasta que borres ese registro de la misma.Ah! ademas el ID se llama asi ID y suele ser un número.

Un saludo
  #4 (permalink)  
Antiguo 27/04/2010, 03:33
Avatar de Sergio18  
Fecha de Ingreso: abril-2010
Ubicación: No quieras saberlo
Mensajes: 94
Antigüedad: 14 años, 8 meses
Puntos: 0
Respuesta: insertar y añadir

Lo acabo de terminar de hacer ahora mismo, lo que e echo a sido declarar una variable y rellenarla con datos, y despues una consulta que me indique el id de la provincia que ponga:

Código vb:
Ver original
  1. Dim idprovincia As Long
  2. idprovincia = 0
  3. '------------------------------------------------------------------------------
  4. 'Crear un conjunto de registros desde la tabla Ciudad2
  5. Set rsCiudad2 = New Recordset
  6. '------------------------------------------------------------------------------
  7. 'Establecer sus propiedades
  8. With rsCiudad2
  9.     .CursorLocation = adUseClient
  10.     .Open "select idprovincias from provincias where provincias='" & Combo1.Text & "'", cnPrueba, adOpenDynamic, adLockOptimistic
  11. End With
  12. If Not rsCiudad2.EOF Then
  13.     idprovincia = rsCiudad2.Fields(0)
  14. End If
  15. rsCiudad2.Close
  16. rsCiudad2.Open "select * from ciudad2"
  17. '------------------------------------------------------------------------------
  18. 'Añadimos los registros del formulario a la base de datos
  19. With rsCiudad2
  20. .AddNew
  21. .Fields("Ciudad") = Text1.Text
  22. .Fields("idprovincia") = idprovincia
  23. .Update
  24. End With
  25. MsgBox ("Datos Añadidos")

Saludos y Gracias por contestar

Etiquetas: añadir
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 07:02.