• Martes 21 de Mayo de 2024, 00:38

Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Mensajes - lagunax

Páginas: [1]
1
Visual Basic 6.0 e inferiores / Re: Agregar Elementos Permanentemente en Combobox
« en: Viernes 27 de Marzo de 2009, 16:32 »
Jejeje, ups, mi error, voy a tratar de implementar de esa forma, también se me ocurrio usar "arreglos", vamos a ver que pasa.

 :beer:

2
Realmente lo que necesito es que el usuario pueda agregar más elementos al ComboBox al presionar un boton, y esos elementos se mantengan permanentes a menos que el mismo usuario decida eliminarlos, digamos con un botón eliminar.

Te agradezco el codigo de ejemplo, pero no logro entenderlo muy bien, ¿podrías explicarmenlo porfavor? Si es posible seria bueno usando algunas variables de ejemplo en vez de las partes donde se indicas "sentencia tal" o "realizar accion" etc.

Gracias.

3
Visual Basic 6.0 e inferiores / Agregar Elementos Permanentemente en Combobox
« en: Jueves 26 de Marzo de 2009, 17:02 »
Hola, me gustaría saber si alguien conoce un metodo para agregar elementos de manera permanente en un ComboBox. He investigado y puedes agregar nuevos elementos de dos formas: mientras estas diseñando la forma y en tiempo de ejecución con el parametro "AddItem". El problema es que si agrega elementos, pero al volver a correr el programa el elemento ya no aparece, y me supongo que cuando se genere el ejecutable se presentará el mismo problema.

Una  breve explicación de lo que hago: Tengo en tres formas distintas ComboBox con los mismos elementos (todos se llaman Combo1), en una forma tengo un boton de agregar nuevo elemento, aqui uso el "AddItem" y hago que el cambio se aplique a los demás ComboBox, igualmente para un botón de Borrrado de elementos. Funciona, pero al salir de la aplicación los elementos agregados desaparecen, solo quedan los que puse por default al diseñar la forma.


Código: Visual Basic
  1. Private Sub Command1_Click()
  2. If Text1 = "" Then
  3.    MsgBox "Debe ingresar una aplicación para poder agregar un elemento", vbQuestion + vbOKOnly, "Datos incompletos"
  4. Else
  5.     Form2.Combo1.AddItem Text1
  6.     Form6.Combo1.AddItem Text1
  7.     Form9.Combo1.AddItem Text1
  8.     MsgBox "¡Agregado!", vbOKOnly, "Datos Correctos"
  9.     Form7.Hide
  10. End If
  11. End Sub
  12.  
  13. Private Sub Command2_Click()
  14. If Combo1.ListIndex <> -1 Then
  15.    Form2.Combo1.RemoveItem Combo1.ListIndex
  16.    Form6.Combo1.RemoveItem Combo1.ListIndex
  17.    Form9.Combo1.RemoveItem Combo1.ListIndex
  18. End If
  19. End Sub
  20.  

¿Existe alguna forma para hacer que se guarden los elementos que agrego (y que desaparezcan los que borro)? Toda ayuda es grandemente recibida.

4
No hay problema Nebire, estas ayudandome bastante con esto, así que puedo esperar el tiempo necesario.

Una vez más gracias por todo tu apoyo.

 :beer:

5
Gracias por tu respuesta tan rápida Nebire.

De hecho el sistema es de lo más sencillo, utilizo setencias ADO para accesar a la BD y en algunos casos lo hago manualmente (sin ADO, definiendo las variables).

La BD en Access 2003 la diseñe de la manera más sencilla, como tampoco he utilizado access tan a fondo, más que nada como un repositorio de datos, únicamente cree los campos de la misma con sus respectivos tipos de datos. Del acceso y modifcicación de la BD esta a cargo el código en Basic.

Si pudieras ayudarme con ese codigo de crear y administrar un sistema de cola de transacciones te estaré sumamente agradecido, claro que puedo esperar, no hay problema con la espera. Como realmente es un diseño muy sencillo tanto del programa de basic como de la BD espero que no te resulte complicado.

De nuevo gracias por tu ayuda, estaré al pendiente de tu respuesta.

 :good:

6
Visual Basic 6.0 e inferiores / Soporar usuarios recurrentes en un Sistema VB6
« en: Miércoles 18 de Marzo de 2009, 23:54 »
Hola a todos nuevamente, ojala alguien pueda iluminarme un poco esta duda que tengo.

Acabo de montar a un servidor un sistema de altas-bajas-cambios-consultas en VB6 con una BD access 2003. El problema es que me piden que este sistema sea capaz de soportar usuarios recurentes (varios usuarios utilizandolo a la vez) pero realmente no tengo ni idea de que tipo de procesos se deben implementar para que exista un soporte de este tipo. Estoy completamente en blanco y sin pistas de donde poder investigar esto.

¿Alguien podría ayudarme a conocer más acerca de este tema, porfavor?

 :hitcomp:

7
Buen día. Se que no tiene mucho que pregunte algo (y obtuve una buena respuesta) pero hay una duda que no logro sacar de mi cabeza, ojala que sea tan sencillo de resolver como lo anterior.

En mi programa realizo una sección de busqueda en una BD Access 2003, filtro los datos de la BD  mediante las opciones en un Combobox (ejemplo, campo Nombre) y aun puedo filtrar más mediante otro campo, al final los cargo en un MSHFlexgrid para desplegarlos. Al hacer click en el MSHFlexgrid, se obtiene el primer valor de cada fila (un ID) con el que realizo una busqueda y despliego en Textbox´s los valores del resto de los campos.

Ejemplo de encabezado de tabla (en gris):   ID  -  NOMBRE  -  DESCRIPCION  -  SOLUCIONES

Cuando se encuentran registros, la fila siguiente al encabezado esta señalada en azul y me devuelve el ID de la fila.
El problema surge cuando selecciono una opción en el Combobox (ejemplo, busca NOMBRE = ALTIMIT), al no haber ninguna correspondencia, el MSHFlexgrid no despliega nada más que el encabezado anterior, pero marca toda la fila del encabezado. Cuando cambio a otra opcion que si me puede desplegar registros el indice (ID) se adelanta por uno, además que el MSHFlexgrid ya no me señala la fila entera al hacer click sobre el. Un ejemplo:

ID  -  NOMBRE  -  DESCRIPCION  -  SOLUCIONES   --> Encabezado en Gris
1       JAVA          PROGRAMA        DESCARGAR    --> Cuando haces click obtienes el ID de la fila
2        VB6           PROGRAMA        DESCARGAR2  --> Cuando la tabla esta vacia y buscas por otro Nombre
3       FOXPRO     APLICACION        DESCARGA3         al hacer click en fila "ID = 2" te regresa el proximo valor
                                                                               (aqui ID seria 3)

He probado con la propiedad Focusrect que es la que manipula la forma en que se señalan las celdas, pero no logro solucionar este problema. Cuando existen registros no surge este problema, solo cuando no hay resultados en la busqueda. Adjunto el codigo:

Código: Visual Basic
  1.  
  2. Option Explicit
  3. Public bool As Boolean
  4. Public bool2 As Boolean
  5. Public auxi_grid As String
  6. Public pasar_id As Integer
  7. Public Numero As Integer
  8. Public ident As Integer
  9. Public auxi As Integer
  10.  
  11. Public copia_id As Integer
  12. Public copia_nombre As String
  13. Public copia_descripcion As String
  14. Public copia_solucion_1 As String
  15.  
  16. Public cn As ADODB.Connection
  17. Public rst As ADODB.Recordset
  18. Sub Conectar()
  19.        
  20.     ' Crea una nueva conexión y un recordset
  21.     Set cn = CreateObject("ADODB.Connection")
  22.     Set rst = CreateObject("ADODB.Recordset")
  23.        
  24.     rst.CursorLocation = adUseClient
  25.     ' abre la base de datos DIRECCION ANTERIOR
  26. '    cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data " & _
  27. '            "Source=C:Program FilesMicrosoft " & _
  28. '            "Visual StudioVB98SISTEMA BUSQUEDAAplicacion.MDB;Persist Security Info=False"
  29. 'DIRECCION NUEVA DEL SERVIDOR \XOA008
  30.     cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data " & _
  31.             "Source=\Xoa008COMPARTIDO SISTEMASSistema " & _
  32.             "de Registro & Solución de ProblemasBase de DatosAplicacion.MDB;Persist Security Info=False"
  33.  
  34.  
  35. End Sub
  36.  
  37. Sub Desconectar()
  38. 'MOSTRAR LA LISTA DE SOLUCIONES EN TEXT3.TEX
  39. '    Form6.Text3.Text = rst("Solucion_1")
  40. '*******************************************
  41.     rst.Close
  42.     cn.Close
  43.     Set rst = Nothing
  44.     Set cn = Nothing
  45. End Sub
  46.  
  47.  
  48. Private Sub Combo1_Click()
  49. Call Conectar
  50.  
  51. rst.Open "SELECT ID,Nombre,Descripcion FROM TablaAplicacion WHERE Nombre Like '%" & _
  52.              Combo1.Text & "%'", cn, adOpenStatic, adLockOptimistic
  53.  
  54. ' Muestra los datos en el FlexGrid
  55. Set MSHFlexGrid1.DataSource = rst
  56.  
  57.  
  58. ' Visualiza la cantidad de registros filtrados
  59. Me.Caption = "Peugeot - Registros encontrados: " & CStr(rst.RecordCount)
  60.  
  61. 'REVISA ESTE CAMBIO !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
  62. 'POSIBILIDAD PARA EVITAR QUE SE MANTENGA SELECCIONADA UNA CELDA Y
  63. 'ASI EVITAR QUE SE CORRA EL REGISTRO
  64. '++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  65. MSHFlexGrid1.FocusRect = flexFocusHeavy
  66. '++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  67.  
  68. Call Desconectar
  69. End Sub
  70.  
  71. Private Sub Command1_Click()
  72. 'MARZO 5 - EVITAR ERROR AL PULSAR GUARDAR CON CAMPOS EN BLANCO
  73. 'MARZO 9 - CAMBIOS REALIZADOS PARA SOLO GUARDAR LA SOLUCION
  74. '+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  75.  
  76. If Text6.Text = "" Then
  77. 'If Text3.Text = "" And Text5.Text = "" And Text6.Text = "" And Combo2.Text = "" Then
  78.     MsgBox ("No hay Datos para Modificar.")
  79. Else
  80. Call Conectar
  81. rst.Open "SELECT ID,Nombre,Descripcion,Solucion_1 FROM TablaAplicacion WHERE ID Like '%" & _
  82.              Text4.Text & "%'", cn, adOpenStatic, adLockOptimistic
  83. If rst.EOF = True Then
  84.         Beep
  85. Else
  86.     Do While bool2 = False
  87.         If rst.Fields("ID") = pasar_id Then
  88.             'rst.Fields("Nombre") = Combo2.Text
  89.             'rst.Fields("Descripcion") = Text5.Text
  90.             rst.Fields("Solucion_1") = Text6.Text
  91.             rst.Update
  92.             MsgBox ("Se han guardado los cambios.")
  93.             bool2 = True
  94.             Command3.Enabled = False
  95.         Else
  96.             rst.MoveNext
  97.         End If
  98.     Loop
  99. End If
  100.  
  101. rst.MoveFirst
  102. Call Desconectar
  103. bool2 = False
  104.  
  105. MSHFlexGrid1.Clear
  106. Command1.Enabled = False
  107. Command4.Enabled = False
  108.  
  109. End If
  110. 'Call copy_auxi
  111. End Sub
  112.  
  113. Private Sub Command2_Click()
  114.  
  115. 'MARZO 5 - LIMPIEZA AL SALIR DE EDITAR/BORRAR
  116. 'MARZO 9 - CAMPOS NO NECESARIOS TEXT3,5 Y COMBO2
  117. MSHFlexGrid1.Clear
  118. MSHFlexGrid1.Refresh
  119. Text1.Text = ""
  120. Text2.Text = ""
  121. Text3.Text = ""
  122. '**********************Text4.Text = ""
  123. 'Text5.Text = ""
  124. Text6.Text = ""
  125. Combo1.Text = ""
  126. 'Combo2.Text = ""
  127. Form9.Hide
  128. Form1.Show
  129. End Sub
  130.  
  131. Private Sub Command3_Click()
  132. 'AGREGADO DEL 5 DE MARZO
  133. 'MARZO 9 - CAMPOS INNECESARIOS
  134. 'Combo2.Text = copia_nombre
  135. 'Text5.Text = copia_descripcion
  136. Text6.Text = copia_solucion_1
  137. 'Call local_clear_auxi
  138. End Sub
  139.  
  140. Private Sub Command4_Click()
  141. 'On Error Resume Next
  142. 'Se utiliza la línea On Error Resume Next para indicarle a Visual Basic que siga ejecutando
  143. 'la forma, aún cuando ocurra un error de ejecución
  144.  
  145.  
  146. Call Conectar
  147. rst.Open "SELECT ID,Nombre,Descripcion,Solucion_1 FROM TablaAplicacion WHERE ID Like '%" & _
  148.              Text4.Text & "%'", cn, adOpenStatic, adLockOptimistic
  149. If rst.EOF = True Then
  150.         Beep
  151. Else
  152. Do While bool2 = False
  153. 'Do Until bool2 = True
  154.         If rst.Fields("ID") = pasar_id Then '¿¿¿¿¿¿ crear variable para copiar
  155.             'MARZ0 5 MIDIFICADO
  156.             'rst.Fields("Nombre") = Combo2.Text
  157.             'rst.Fields("Descripcion") = Text5.Text
  158.             'rst.Fields("Solucion_1") = Text6.Text
  159.            
  160.             If MsgBox("Se va a eliminar el Registro, ¿Desea continuar?", vbExclamation + vbYesNo, "Eliminacion de Registros") = vbYes Then
  161.                 rst.Delete
  162.                 rst.Requery
  163.                 rst.MoveNext
  164.            'POSIBILIDAD PARA EVITAR QUE AL ELIMINAR N REGISTRO DESPLIEGUE DATOS ANTES DEL BORRADO
  165.            '+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  166.                 'PARA EVITAR QUE AL ELIMINAR EL CURSOR DESPLIEGUE EL MISMO REGISTRO ELIMINADO
  167.                 'A PESAR DE QUE EL RECORDSET YA AVANZO
  168.                 'CALCULAR EL AVANCE DEL RECORSET
  169.              '   Text3.Text = rst.Fields("ID")
  170.              '   Combo2.Text = rst.Fields("Nombre")
  171.              '   Text5.Text = rst.Fields("Descripcion")
  172.              '   Text6.Text = rst.Fields("Solucion_1")
  173.              '       If rst.EOF Then
  174.              '           rst.MoveLast
  175.              '       End If
  176.             '++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  177.                 MsgBox ("Registro Eliminado con Éxito.")
  178.                
  179.                 'EVITA QUE DESPLIEGUE OTROS REGISTROS DESPUES DE ELIMINAR UNO++++++
  180.                 'MARZO 9 - CAMPOS INNECESARIOS
  181.                 Text3.Text = ""
  182.                 'Combo2.Text = ""
  183.                 'Text5.Text = ""
  184.                 Text6.Text = ""
  185.                 Command3.Enabled = False
  186.                 Command4.Enabled = False
  187.                 '++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  188.                 bool2 = True
  189.                
  190.                 MSHFlexGrid1.Clear
  191.                 'DESPLEGAR VALORES EN TABLA SEGUN APLICACION AL BORRAR
  192.                 '+++++++++++++++++++++++++++++++++++++++++++++++++++++
  193.                 Call Desconectar
  194.                 Call Conectar
  195.                 rst.Open "SELECT ID,Nombre,Descripcion FROM TablaAplicacion WHERE Nombre Like '%" & _
  196.                  Combo1.Text & "%'", cn, adOpenStatic, adLockOptimistic
  197.                 Set MSHFlexGrid1.DataSource = rst
  198.                 '+++++++++++++++++++++++++++++++++++++++++++++++++++++
  199.             Else
  200.                 MsgBox ("El Registro No fue Eliminado.")
  201.                 bool2 = True
  202.                 Command4.Enabled = False
  203.             End If
  204.         Else
  205.                 rst.MoveNext
  206.         End If
  207. Loop
  208. End If
  209. 'COMENTAR PARA EVITAR QUE AL BORRAR ENVIE Y DESPLIEGUE AL PRIMER REGISTRO
  210. '++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  211. 'rst.MoveFirst
  212. '++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  213. 'Command4.Enabled = False
  214.  
  215. Call Desconectar
  216. bool2 = False
  217.  
  218. '///////////////////////////////
  219.  
  220. End Sub
  221.  
  222. Private Sub Form_Load()
  223. MSHFlexGrid1.Clear
  224.  
  225.     With MSHFlexGrid1
  226.         .SelectionMode = flexSelectionByRow
  227.         .FixedCols = 0
  228.         .ColWidth(0) = 700
  229.         .ColWidth(1) = 2000
  230.         .ColWidth(2) = 5000
  231. '        .ColWidth(3) = 4000
  232. '        .ColWidth(4) = 4000
  233.     End With
  234.  
  235.     Text2.Text = ""
  236.     Text3.Text = ""
  237. End Sub
  238.  
  239.  
  240.  
  241. Private Sub MSHFlexGrid1_Click()
  242. '///////////////////////////////////////////////////////////////////
  243. 'CAMBIAR CADENAS STRING A INTEGER
  244. 'Dim Cadena As String, Numero As Integer
  245. 'Cadena = "12345.25"
  246. 'Numero = CInt(Val(Cadena)) 'Esto te cambia la cadena a un numero entero
  247. Text1.Text = MSHFlexGrid1.Text
  248.  
  249. auxi_grid = MSHFlexGrid1.Text
  250. Numero = CInt(Val(auxi_grid))
  251. Text4.Text = Numero
  252. Form7.Text1.Text = ""
  253. 'ENABLE EL BOTON DESHACER CUANDO SE HACE CLICK EN TABLA
  254. 'OTRA OPCION SERIA ELIMINAR EL BOTON - SERIA MEJOR OPCION
  255. '   PERMITIR MODIFICAR SOLO EL CAMPO SOLUCION
  256. Command3.Enabled = True
  257. Command4.Enabled = True
  258. Command1.Enabled = True
  259. '++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  260. Call Conectar
  261. 'CAMBIOS NUEVOS agregamos Solucion
  262. rst.Open "SELECT ID,Nombre,Descripcion,Solucion_1 FROM TablaAplicacion WHERE ID Like '%" & _
  263.              Text4.Text & "%'", cn, adOpenStatic, adLockOptimistic
  264.  
  265. '   Para acceder a un campo:
  266.     If rst.EOF = True Then
  267.         Form7.Text1.Text = ""
  268.     Else
  269. 'CAMBIOS NUEVOS        Adodc1.RecordSource = "SELECT * FROM TablaAplicacion"
  270. 'CAMBIOS NUEVOS        Adodc1.Refresh
  271.        
  272. '///        With Adodc1.Recordset
  273. '///            If .EOF And .BOF Then
  274. '///                auxi = 0
  275. '///            Else
  276.             If MSHFlexGrid1.Text = "" Then
  277.                 MsgBox "La Tabla esta Vacia"
  278.             Else
  279.                 Do While bool = False
  280.                         'PREGUNTAR SI HAY UN EOF O BOF PARA CUANDO NO HAY REGISTROS EN LA OPCION
  281.                         'Y HACEN CLICK
  282.                         '+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  283.                          If rst.BOF = True Or rst.EOF = True Then
  284.                             MsgBox ("No existen registros de esta Aplicación.")
  285.                             bool = True
  286.                          Else
  287.                         '+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  288.                          If rst.Fields("ID") = Text4.Text Then
  289.                                 Text3.Text = ""
  290.                                 'Combo2.Text = ""
  291.                                 'Text5.Text = ""
  292.                                 Text6.Text = ""
  293.                          'CAMBIOS 9 DE MARZO, SE BORRAN LOS CAMPOS DE ID,NOMBRE Y DESCRIPCION
  294.                          'YA QUE SOLO SE DESEA MODIFICAR SOLUCION
  295.                          '+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  296.                                 Text3.Text = rst.Fields("ID")
  297.                                 'Combo2.Text = rst.Fields("Nombre")
  298.                                 'Text5.Text = rst.Fields("Descripcion")
  299.                          '+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  300.                                 Text6.Text = rst.Fields("Solucion_1")
  301.                                 bool = True
  302.                                 pasar_id = rst.Fields("ID")
  303.                                 'CAMBIO RECIENTE HOY 5 MARZO
  304.                                 Call local_clear_auxi
  305.                                 Call local_copy_auxi
  306.                                
  307.                          Else
  308. 'CAMBIOS NUEVOS                                Adodc1.Recordset.MoveNext
  309.                                 rst.MoveNext
  310.                          End If
  311.                          '+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  312.                          End If
  313.                          '+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  314.                 Loop
  315.             End If
  316. '///            End If
  317. '///        End With
  318. 'CAMBIOS NUEVOS        Adodc1.Recordset.MoveFirst 'CAMBIO RECIENTE
  319.     End If
  320. rst.MoveFirst
  321. Call Desconectar
  322.  
  323. auxi_grid = ""
  324. Numero = 0
  325. Text4.Text = ""
  326. bool = False
  327. End Sub
  328.  
  329. Private Sub Text1_GotFocus()
  330.     'Text1.Text = ""
  331. End Sub
  332.  
  333. Private Sub Text2_Change()
  334.     ' conecta
  335.     Call Conectar
  336.     bool = False
  337.     ' Ejecuta la consulta SQL
  338. 'SENTENCIA SQL ORIGINAL
  339. '    rst.Open "SELECT ID,Nombre,Descripcion FROM TablaAplicacion WHERE Descripcion Like '%" & _
  340.  '            Text2.Text & "%'", cn, adOpenStatic, adLockOptimistic
  341.    
  342.  
  343.     rst.Open "SELECT ID,Nombre,Descripcion FROM TablaAplicacion WHERE Descripcion Like '%" & Text2.Text & "%' And Nombre Like '" & Combo1.Text & "'", cn, adOpenStatic, adLockOptimistic
  344.  
  345.  
  346. '   ' Para acceder a un campo:
  347.     If rst.EOF = True Then
  348.     '    Text3.Text = "" borrar text1
  349.         Text1.Text = ""
  350.     Else
  351. 'ULTIMA MODIFICIACION ADODC******************************************************
  352.         ident = rst("ID")
  353.         Adodc1.RecordSource = "SELECT * FROM TablaAplicacion"
  354.         Adodc1.Refresh
  355.       Do While bool = False
  356.         If Adodc1.Recordset.Fields("ID") = ident Then
  357.             'Text3.Text = Adodc1.Recordset.Fields("Solucion_1")
  358.             'IMPRIME SOLUCION EN TEXT3.TEXT CUANDO FILTRAS INFO
  359.             bool = True
  360.         Else
  361.             Adodc1.Recordset.MoveNext
  362.         End If
  363.       Loop
  364. '*******************************************************************************
  365.  ' GOOD       Text3.Text = rst("Solucion_1")
  366.     End If
  367.  
  368.     ' Enlaza el FlexGRid
  369.     Set MSHFlexGrid1.DataSource = rst
  370.  
  371.     ' Cantidad de registros
  372.     Me.Caption = "Registros encontrados: " & CStr(rst.RecordCount)
  373.  
  374.     ' Desconecta de la base de datos
  375.     Call Desconectar
  376.    
  377.     If Text2.Text = "" Then
  378.    
  379.         'Text3.Text = "" borrar text1
  380.         Text1.Text = ""
  381.     End If
  382. End Sub
  383.  
  384. Private Sub Text2_GotFocus()
  385.     Text2.Text = ""
  386. End Sub
  387.  
  388. ''MODIFICACION RECIENTE 5 de marzo////////////////////////////////////////////
  389. ' COPIA VARIABLES AUXI PARA BOTON DESHACER
  390. ' NO COPIAR VALORES NO NECESARIOS
  391. Private Sub local_copy_auxi()
  392. 'copia_id = TxtID.Text
  393. 'copia_nombre = Combo2.Text
  394. 'copia_descripcion = Text5.Text
  395. copia_solucion_1 = Text6.Text
  396. End Sub
  397.  
  398. Private Sub local_clear_auxi()
  399. copia_id = 0
  400. 'copia_nombre = ""
  401. 'copia_descripcion = ""
  402. copia_solucion_1 = ""
  403. End Sub
  404.  
  405.  
  406.  

Aqui uso un modulo para el filtrado que mencione anteriormente:

Código: Visual Basic
  1.  
  2. Function Autocompletar_FlexGrid(MSFlexGrid As Object, _
  3.                                TBox As TextBox, _
  4.                                Columna As Long)
  5.  
  6. Dim i As Integer
  7. Dim pos_SelStart As Integer
  8.  
  9.     If (KeyRetroceso Or Len(TBox.Text) = 0) Then
  10.         KeyRetroceso = False
  11.         Exit Function
  12.     End If
  13.        
  14.     With MSFlexGrid
  15.         'Recorremos todas las filas del MsFlexgrid
  16.         For i = 0 To .Rows - 1
  17.             'Busca en el flexgrid si hay coincidencia, en la fila y columna actual
  18.             If InStr(1, .TextMatrix(i, Columna), TBox.Text, vbTextCompare) = 1 Then
  19.                    
  20.                 pos_SelStart = TBox.SelStart
  21.                 'Asignamos el valor de la celda actual al textbox
  22.                 TBox.Text = .TextMatrix(i, Columna)
  23.                 'Indicamos el comienzo de la selección
  24.                 TBox.SelStart = pos_SelStart
  25.                 'seleccionamos la porción de texto en el Text
  26.                 TBox.SelLength = Len(.TextMatrix(i, Columna)) - pos_SelStart
  27.                 ' Establecemos con TopRow , la fila arriba de todo
  28.                 .TopRow = i
  29.                 Exit For
  30.             End If
  31.         Next i
  32.     End With
  33. End Function
  34.  
  35.  

Solo espero haberme explicado bien. De antemano otra vez Gracias por la ayuda.

8
Muchas gracias, es justo como lo indicas, ahora funciona correctamente.

Creo que al final me revolvi con varios If´s y busque donde no era. Se agradece la pronta respuesta.

Bye.

 :beer:

9
Visual Basic 6.0 e inferiores / Error "Loop sin Do" cuando existe el "Do While"
« en: Viernes 6 de Marzo de 2009, 00:07 »
Hola, Hola, aqui una vez más Lagunax molestando un poco a la comunidad, me ha surgido un error muy extraño, ojala que alguien pueda ayudarme a resolverlo.

Estoy realizando la sección de editar-eliminar registros de un pequeño sistema que utiliza BD access. Mediante un combobox y un text que sirve de filtro, despliego los datos de la BD en un MSHFlexgrid. Cuando hago click en una fila obtengo el ID de esos datos , el cual utilizo para modificar y eliminar la información.

He logrado realizar con exito el boton de editar [Command1] pero me surge un problema con el boton de eliminar rgistro [aqui Command4].

Aclaro que [Command2] limpia los text y combo boxes, [Command1] copia los valores para emular un boton "deshacer".

En [Command4] realizo una coneccion a la BD, un select, y luego recorro el recorset para encontar los campos que corresponden con el indice que obtuve del MSHFlexgrid1 (variable pasar_id). El problema surge cuando presiono el botón de eliminar, manda "Error de compilación: Loop sin Do". He intentado con F8 (paso a paso) pero al momento de presionar el botón se corta, por lo que no puedo verificar si simplemente no reconoce el Do o existe otro problema.

Option Explicit
Public bool As Boolean
Public bool2 As Boolean
Public auxi_grid As String
Public pasar_id As Integer
Public Numero As Integer
Public ident As Integer
Public auxi As Integer

Public copia_id As Integer
Public copia_nombre As String
Public copia_descripcion As String
Public copia_solucion_1 As String

Public cn As ADODB.Connection
Public rst As ADODB.Recordset
Sub Conectar()
       
    ' Crea una nueva conexión y un recordset
    Set cn = CreateObject("ADODB.Connection")
    Set rst = CreateObject("ADODB.Recordset")
       
    rst.CursorLocation = adUseClient
    ' abre la base de datos DIRECCION ANTERIOR
'    cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data " & _
'            "Source=C:Program FilesMicrosoft " & _
'            "Visual StudioVB98SISTEMA BUSQUEDAAplicacion.MDB;Persist Security Info=False"
'DIRECCION NUEVA DEL SERVIDOR \XOA008
    cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data " & _
            "Source=\Xoa008COMPARTIDO SISTEMASSistema " & _
            "de Registro & Solución de ProblemasBase de DatosAplicacion.MDB;Persist Security Info=False"

 
End Sub
 
Sub Desconectar()
'MOSTRAR LA LISTA DE SOLUCIONES EN TEXT3.TEX
'    Form6.Text3.Text = rst("Solucion_1")
'*******************************************
    rst.Close
    cn.Close
    Set rst = Nothing
    Set cn = Nothing
End Sub


Private Sub Combo1_Click()
Call Conectar
 
rst.Open "SELECT ID,Nombre,Descripcion FROM TablaAplicacion WHERE Nombre Like '%" & _
             Combo1.Text & "%'", cn, adOpenStatic, adLockOptimistic

' Muestra los datos en el FlexGrid
Set MSHFlexGrid1.DataSource = rst

 
' Visualiza la cantidad de registros filtrados
Me.Caption = "Peugeot - Registros encontrados: " & CStr(rst.RecordCount)
 
Call Desconectar
End Sub

Private Sub Command1_Click()
'MARZO 5 - EVITAR ERROR AL PULSAR GUARDAR CON CAMPOS EN BLANCO
If Text3.Text = "" And Text5.Text = "" And Text6.Text = "" And Combo2.Text = "" Then
    MsgBox ("No hay Datos para Modificar.")
Else
Call Conectar
rst.Open "SELECT ID,Nombre,Descripcion,Solucion_1 FROM TablaAplicacion WHERE ID Like '%" & _
             Text4.Text & "%'", cn, adOpenStatic, adLockOptimistic
If rst.EOF = True Then
        Beep
Else
    Do While bool2 = False
        If rst.Fields("ID") = pasar_id Then '¿¿¿¿¿¿ crear variable para copiar
            rst.Fields("Nombre") = Combo2.Text
            rst.Fields("Descripcion") = Text5.Text
            rst.Fields("Solucion_1") = Text6.Text
            rst.Update
            MsgBox ("Se han guardado los cambios.")
            bool2 = True
        Else
            rst.MoveNext
        End If
    Loop
End If

rst.MoveFirst
Call Desconectar
bool2 = False

MSHFlexGrid1.Clear
End If
'Call copy_auxi
End Sub

Private Sub Command2_Click()
Form9.Hide
'MARZO 5 - LIMPIEZA AL SALIR DE EDITAR/BORRAR
MSHFlexGrid1.Clear
MSHFlexGrid1.Refresh
Text1.Text = ""
Text2.Text = ""
Text3.Text = ""
'Text4.Text = ""
Text5.Text = ""
Text6.Text = ""
Combo1.Text = ""
Combo2.Text = ""
Form1.Show
End Sub

Private Sub Command3_Click()
'AGREGADO DEL 5 DE MARZO
Combo2.Text = copia_nombre
Text5.Text = copia_descripcion
Text6.Text = copia_solucion_1
'Call local_clear_auxi
End Sub

//////////////////////////////////////////////////////////////////////////////////////////////////
AQUI INICIA EL PROBLEMA
//////////////////////////////////////////////////////////////////////////////////////////////////
Private Sub Command4_Click()
'MARZO 5
'On Error Resume Next
'Se utiliza la línea On Error Resume Next para indicarle a Visual Basic que siga ejecutando
'la forma, aún cuando ocurra un error de ejecución

Call Conectar
rst.Open "SELECT ID,Nombre,Descripcion,Solucion_1 FROM TablaAplicacion WHERE ID Like '%" & _
             Text4.Text & "%'", cn, adOpenStatic, adLockOptimistic
If rst.EOF = True Then
        Beep
Else
'Do While bool2 = False '////// ESTE ES EL CICLO QUE NO RECONOCE
Do Until bool2 = True
        If rst.Fields("ID") = pasar_id Then
            'MARZ0 5 MIDIFICADO
            'rst.Fields("Nombre") = Combo2.Text
            'rst.Fields("Descripcion") = Text5.Text
            'rst.Fields("Solucion_1") = Text6.Text
           
            If MsgBox("Se va a eliminar el Registro, ¿Desea continuar?", vbExclamation + vbYesNo, "Eliminacion de Registros") = vbYes Then
            rst.Delete
            rst.Requery
            rst.MoveNext
            'PARA EVITAR QUE AL ELIMINAR EL CURSOR DESPLIEGUE EL MISMO REGISTRO ELIMINADO
            'A PESAR DE QUE EL RECORDSET YA AVANZO
            'CALCULAR EL AVANCE DEL RECORSET
            Text3.Text = rst.Fields("ID")
            Combo2.Text = rst.Fields("Nombre")
            Text5.Text = rst.Fields("Descripcion")
            Text6.Text = rst.Fields("Solucion_1")
                If rst.EOF Then
                    rst.MoveLast
                End If
            MsgBox ("Registro Eliminado con Éxito.")
           
            bool2 = True
        Else
            rst.MoveNext
        End If
Loop
End If

rst.MoveFirst
Call Desconectar
bool2 = False

MSHFlexGrid1.Clear
End Sub
//////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////

Private Sub Form_Load()
MSHFlexGrid1.Clear

    With MSHFlexGrid1
        .SelectionMode = flexSelectionByRow
        .FixedCols = 0
        .ColWidth(0) = 700
        .ColWidth(1) = 2000
        .ColWidth(2) = 5000
'        .ColWidth(3) = 4000
'        .ColWidth(4) = 4000
    End With
 
    Text2.Text = ""
'    Text3.Text = ""
End Sub



Private Sub MSHFlexGrid1_Click()
'///////////////////////////////////////////////////////////////////
'CAMBIAR CADENAS STRING A INTEGER
'Dim Cadena As String, Numero As Integer
'Cadena = "12345.25"
'Numero = CInt(Val(Cadena)) 'Esto te cambia la cadena a un numero entero
Text1.Text = MSHFlexGrid1.Text

auxi_grid = MSHFlexGrid1.Text
Numero = CInt(Val(auxi_grid))
Text4.Text = Numero
Form7.Text1.Text = ""


Call Conectar
'CAMBIOS NUEVOS agregamos Solucion
rst.Open "SELECT ID,Nombre,Descripcion,Solucion_1 FROM TablaAplicacion WHERE ID Like '%" & _
             Text4.Text & "%'", cn, adOpenStatic, adLockOptimistic

'   Para acceder a un campo:
    If rst.EOF = True Then
        Form7.Text1.Text = ""
    Else
'CAMBIOS NUEVOS        Adodc1.RecordSource = "SELECT * FROM TablaAplicacion"
'CAMBIOS NUEVOS        Adodc1.Refresh
       
'///        With Adodc1.Recordset
'///            If .EOF And .BOF Then
'///                auxi = 0
'///            Else
            If MSHFlexGrid1.Text = "" Then
                MsgBox "La Tabla esta Vacia"
            Else
                Do While bool = False
'CAMBIOS NUEVOS                         If Adodc1.Recordset.Fields("ID") = Text4.Text Then
                         If rst.Fields("ID") = Text4.Text Then
                                Text3.Text = ""
                                Combo2.Text = ""
                                Text5.Text = ""
                                Text6.Text = ""
                         
                                Text3.Text = rst.Fields("ID")
                                Combo2.Text = rst.Fields("Nombre")
                                Text5.Text = rst.Fields("Descripcion")
                                Text6.Text = rst.Fields("Solucion_1")
                                bool = True
                                pasar_id = rst.Fields("ID")
                                'CAMBIO RECIENTE HOY 5 MARZO
                                Call local_clear_auxi
                                Call local_copy_auxi
                               
                         Else
'CAMBIOS NUEVOS                                Adodc1.Recordset.MoveNext
                                rst.MoveNext
                         End If
                Loop
            End If
'///            End If
'///        End With
'CAMBIOS NUEVOS        Adodc1.Recordset.MoveFirst 'CAMBIO RECIENTE
    End If
rst.MoveFirst
Call Desconectar

auxi_grid = ""
Numero = 0
Text4.Text = ""
bool = False
End Sub

Private Sub Text1_GotFocus()
    'Text1.Text = ""
End Sub

Private Sub Text2_Change()
    ' conecta
    Call Conectar
    bool = False
    ' Ejecuta la consulta SQL
'SENTENCIA SQL ORIGINAL
'    rst.Open "SELECT ID,Nombre,Descripcion FROM TablaAplicacion WHERE Descripcion Like '%" & _
 '            Text2.Text & "%'", cn, adOpenStatic, adLockOptimistic
   

    rst.Open "SELECT ID,Nombre,Descripcion FROM TablaAplicacion WHERE Descripcion Like '%" & Text2.Text & "%' And Nombre Like '" & Combo1.Text & "'", cn, adOpenStatic, adLockOptimistic
 
 
'   ' Para acceder a un campo:
    If rst.EOF = True Then
    '    Text3.Text = "" borrar text1
        Text1.Text = ""
    Else
'ULTIMA MODIFICIACION ADODC******************************************************
        ident = rst("ID")
        Adodc1.RecordSource = "SELECT * FROM TablaAplicacion"
        Adodc1.Refresh
      Do While bool = False
        If Adodc1.Recordset.Fields("ID") = ident Then
            'Text3.Text = Adodc1.Recordset.Fields("Solucion_1")
            'IMPRIME SOLUCION EN TEXT3.TEXT CUANDO FILTRAS INFO
            bool = True
        Else
            Adodc1.Recordset.MoveNext
        End If
      Loop
'*******************************************************************************
 ' GOOD       Text3.Text = rst("Solucion_1")
    End If
 
    ' Enlaza el FlexGRid
    Set MSHFlexGrid1.DataSource = rst
 
    ' Cantidad de registros
    Me.Caption = "Registros encontrados: " & CStr(rst.RecordCount)
 
    ' Desconecta de la base de datos
    Call Desconectar
   
    If Text2.Text = "" Then
   
        'Text3.Text = "" borrar text1
        Text1.Text = ""
    End If
End Sub

Private Sub Text2_GotFocus()
    Text2.Text = ""
End Sub

''MODIFICACION RECIENTE 5 de marzo////////////////////////////////////////////
' COPIA VARIABLES AUXI PARA BOTON DESHACER
Private Sub local_copy_auxi()
'copia_id = TxtID.Text
copia_nombre = Combo2.Text
copia_descripcion = Text5.Text
copia_solucion_1 = Text6.Text
End Sub

Private Sub local_clear_auxi()
'copia_id = 0
copia_nombre = ""
copia_descripcion = ""
copia_solucion_1 = ""
End Sub


Incluso he probado en vez de un "Do While" un "Do Until" (esta en comentarios) pero sigue sin reconocer el Do. Alguien podría ayudarme, porfavor.

De antemano Gracias.

10
Visual Basic 6.0 e inferiores / Re: Como filtrar una BD con LIKE
« en: Miércoles 4 de Marzo de 2009, 00:03 »
Gracias por la explicación, realmente no estaba seguro del funcionamiento de cada uno de los simboos, espero no tener mas problemas con este tipo de filtrado.

Una vez más, Gracias.

11
Visual Basic 6.0 e inferiores / Re: Como filtrar una BD con LIKE
« en: Miércoles 25 de Febrero de 2009, 16:35 »
Muchas gracias, lo he probado y ha funcionado correctamente. Solo me gustaria pedirte un ultimo favor, ¿podrías explicarme como va la sintaxis del LIKE con los signos (% " ' &)?

"SELECT ID,Nombre,Descripcion FROM TablaAplicacion WHERE Descripcion Like '%" & Text2.Text & "%' And Nombre Like '" & Combo1.Text & "'"

Asumi que eran modificadores de busqueda, pero no he encontrado a que hacen referencia.

Una vez más, gracias por tu respuesta.  :good:

12
Visual Basic 6.0 e inferiores / Como filtrar una BD con LIKE
« en: Lunes 23 de Febrero de 2009, 23:50 »
Hola, aqui nuevamente tengo un pequeño problema que espero algien me pueda ayudar. Tengo una BD en access 2003, en el formulario trato de filtrar la información (desplegada en un MSHFlexgrid) mediante dos campos: el contenido de una lista del Combo1.Text y un Text2.Text, el cual va filtrando la BD mediante un campo de la misma, al momento de escribir alguna letra en el text.

Mi problema es que deseo que se filtre la BD dos veces, ejemplo: selecciono del Combo1 "Nombre X" (hay un campo Nombre en la BD asociado al combo), para luego escribir en el Text2 (asociado a un campo descripcion en la BD) el cual va realizando una busqueda para encontrar el registro que corresponda a lo escrito en el mismo text2.

Lo que busca el Text2 no respeta el filtrado hecho por el combo1.

Logro filtrar por separado, pero si quiero hacerlo al mismo tiempo me genera errores, aqui hay un ejemplo de lo que trate de hacer:

Private sub_Text2_Change()
...

    rst.Open "SELECT ID,Nombre,Descripcion FROM TablaAplicacion WHERE Descripcion Like '%" & _
             Text2.Text & "%'" AND Nombre Like "& Combo1.Text &", cn, adOpenStatic, adLockOptimistic

Error: No se reconoce la variable Nombre
...

Ojala alguien me pueda ayudar, es muy importante. Gracias.

Aqui esta el codigo del formulario.

Option Explicit
Public bool As Boolean
Public ident As Integer
Public cn As ADODB.Connection
Public rst As ADODB.Recordset
Sub Conectar()
       
    ' Crea una nueva conexión y un recordset
    Set cn = CreateObject("ADODB.Connection")
    Set rst = CreateObject("ADODB.Recordset")
       
    rst.CursorLocation = adUseClient
    ' abre la base de datos DIRECCION ANTERIOR
'    cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data " & _
'            "Source=C:Program FilesMicrosoft " & _
'            "Visual StudioVB98SISTEMA BUSQUEDAAplicacion.MDB;Persist Security Info=False"
'DIRECCION NUEVA DEL SERVIDOR \XOA008
    cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data " & _
            "Source=\Xoa008COMPARTIDO SISTEMASSistema " & _
            "de Registro & Solución de ProblemasBase de DatosAplicacion.MDB;Persist Security Info=False"

 
End Sub
 
Sub Desconectar()
'MOSTRAR LA LISTA DE SOLUCIONES EN TEXT3.TEX
'    Form6.Text3.Text = rst("Solucion_1")
'*******************************************
    rst.Close
    cn.Close
    Set rst = Nothing
    Set cn = Nothing
End Sub


Private Sub Combo1_Click()
Call Conectar
 
//****FILTRA LA BD SEGUN LO QUE MUESTRE EL COMBO1.TEXT
rst.Open "SELECT ID,Nombre,Descripcion FROM TablaAplicacion WHERE Nombre Like '%" & _
             Combo1.Text & "%'", cn, adOpenStatic, adLockOptimistic
 
' Muestra los datos en el FlexGrid
Set MSHFlexGrid1.DataSource = rst

 
' Visualiza la cantidad de registros filtrados
Me.Caption = "Peugeot - Registros encontrados: " & CStr(rst.RecordCount)
 
Call Desconectar
End Sub

Private Sub Command1_Click()

Text2.Text = ""
Text3.Text = ""
End Sub

Private Sub Command2_Click()
Form6.Hide
Form1.Show
End Sub

Private Sub Form_Load()
MSHFlexGrid1.Clear

    With MSHFlexGrid1
        .SelectionMode = flexSelectionByRow
        .FixedCols = 0
        .ColWidth(0) = 700
        .ColWidth(1) = 2500
        .ColWidth(2) = 5000
'        .ColWidth(3) = 4000
'        .ColWidth(4) = 4000
    End With
 
   
    Text2.Text = ""
    Text3.Text = ""
End Sub



Private Sub Text1_GotFocus()
    Text1.Text = ""
End Sub



Private Sub Text2_Change()
    ' conecta
    Call Conectar
    bool = False
    ' Ejecuta la consulta SQL
   
////*************AQUI ES DONDE SE HACE EL FILTRADO SEGUN SE VA ESCRIBIENDO EN EL TEXT2.TEX
////*************DONDE NO LOGRO AGREGAR UN LIKE PARA QUE SOLO FILTRE LOS DATOS QUE YA
////*************SE FILTRARON EN EL COMBO1.TEXT
    rst.Open "SELECT ID,Nombre,Descripcion FROM TablaAplicacion WHERE Descripcion Like '%" & _
             Text2.Text & "%'", cn, adOpenStatic, adLockOptimistic
 
 
'   ' Para acceder a un campo:
    If rst.EOF = True Then
        Text3.Text = ""
    Else
'ULTIMA MODIFICIACION ADODC******************************************************
        ident = rst("ID")
        Adodc1.RecordSource = "SELECT * FROM TablaAplicacion"
        Adodc1.Refresh
      Do While bool = False
        If Adodc1.Recordset.Fields("ID") = ident Then
            Text3.Text = Adodc1.Recordset.Fields("Solucion_1")
            bool = True
        Else
            Adodc1.Recordset.MoveNext
        End If
      Loop
'*******************************************************************************
 ' GOOD       Text3.Text = rst("Solucion_1")
    End If
 
    ' Enlaza el FlexGRid
    Set MSHFlexGrid1.DataSource = rst
 
    ' Cantidad de registros
    Me.Caption = "Registros encontrados: " & CStr(rst.RecordCount)
 
    ' Desconecta de la base de datos
    Call Desconectar
End Sub

Private Sub Text2_GotFocus()
    Text2.Text = ""
End Sub

13
Gracias, despues de probar mucho descubri que en una BD de access puedes guardar el formato de un Textbox largo asignandole al campo de la BD un tipo Memo en lugar de un Texto.

Aun así, gracias por la ayuda. Hasta la proxima.

14
Hola A todos, espero que me puedan ayudar. estoy elaborando un pequeño sistema de altas, bajas, cambios y consultas en VB6, utilizando una BD Aceess 2003, y realizando la conexión a la misma utilizando ADO (adodc1).

En el formulario de Nuevo (para guardar datos) es donde tengo mi duda. este formulario cuenta con los campos ID (autonumerico), Descripcion,Solucion_1,Solucion_2 [estos son Textbox] y Nombre [es un Combobox]. El problema se halla en los campos de Solucion, ya que quiero que acepte salto de linea para guardar la información de la siguiente manera, ejemplo:

1.LINEA DE INFORMACIÓN 1
2.LINEA DE INFORMACIÓN 2
3.LINEA DE INFORMACIÓN 3
4.LINEA DE INFORMACIÓN 4 ****
5.LINEA DE INFORMACIÓN 5
6.LINEA DE INFORMACIÓN 6

Tengo Multiline=True para que el Textbox acepte el salto de linea, guarda bien la información Hasta la linea [3.LINEA DE INFORMACIÓN 3], pero si trato de agregar las líneas 4,5 o 6 (opcionales, pero si el usuario quiere meter más lineas hay que hacerlo) me surge el siguiente error:

Error'-2147217887 (80040e21)' en tiempo de ejecución:
Multiple-step operation generated errors. Check each status value.
--> Depurar --> Me.Adodc1.Recordset.Fields("Solucion_1") = Text3.Text [en boton guardar]

Despues de depurar, acepta la información normalmente, pero eso no puede ser. Aqui adjunto el codigo del formulario:

Option Explicit
Dim auxi


Private Sub CancelBtn_Click()
Combo1.Text = ""
Text2.Text = ""
Text3.Text = ""
Text4.Text = ""
Form2.Hide
Form1.Show
End Sub




Private Sub Form_Load()

    Me.Adodc1.RecordSource = "SELECT * FROM TablaAplicacion"
    Me.Adodc1.Refresh
    Me.Adodc1.Recordset.MoveLast
    auxi = Me.Adodc1.Recordset.Fields("ID")
    auxi = auxi + 1
    Me.Text1.Text = auxi
    Me.Combo1.Text = ""
    Me.Text2.Text = ""
    Me.Text3.Text = ""
    Me.Text4.Text = ""

End Sub

Private Sub GuardarBtn_Click()
'Or Text4 = ""
If Text2 = "" Or Text3 = "" Or Combo1 = "" Then
    MsgBox "Debe completar los datos", vbExclamation
    Exit Sub
End If
       
        Me.Adodc1.Recordset.AddNew
        Me.Adodc1.Recordset.Fields("Nombre") = Combo1.Text
        Me.Adodc1.Recordset.Fields("Descripcion") = Text2.Text
        Me.Adodc1.Recordset.Fields("Solucion_1") = Text3.Text ***********************Aqui te lleva depurar
        Me.Adodc1.Recordset.Fields("Solucion_2") = Text4.Text
        Me.Adodc1.Recordset.Update
        auxi = auxi + 1
        Me.Text1.Text = auxi
        Me.Text2.Text = ""
        Me.Text3.Text = ""
        Me.Text4.Text = ""

MsgBox "Registro guardado", vbInformation, "Guardar"
'ELEMENTO RECIENTE
Adodc1.Refresh

Me.Combo1.Text = ""
Me.Text2.Text = ""
Me.Text3.Text = ""
Me.Text4.Text = ""
'/////////////////
Form2.Hide
Form1.Show
End Sub


Ojala alguien me pueda ayudar, ya trate mucho y no hallo una solución. Gracias

Páginas: [1]