Hola, quisiera hacerte las siguientes preguntas que seguro me vas a poder ayudar. -Tengo un formulario que al apretar un botón, voy a otro formulario, ya en el segundo formulario cuando minimizo veo el primer formulario, lo que quiero hacer es que cuando minimizo el segundo formulario se minimice el primero también. -Como puedo cargar un combo con valores de una tabla de la base de datos así selecciono directamente datos de la base de datos.
Por ahora son estas preguntas Muchas gracias Saludos martin
1 Respuesta
Respuesta de athrarn
1
1
athrarn, - Sistemas Operativos : - MS-DOS, Windows 3
Como no hay un evento que sea Form_Minimize, te recomiendo : Cuando la ventana que recupera el foco al minimizar entra en acción, se ejecuta el evento form_Deactivate. En ese evento incluye : if VentanaQueSiSeMinimizaCierraEsta.WindowState= VBMinimiced then me.hide end if Para la Base de datos, debes primero Conectarte, con algo así: Clase conexión Option Explicit Private Conexion As ADODB.Connection 'Private Const SERVICIO_ORACLE As String = "TMMDES" Private Const SERVICIO_ORACLE As String = "SID_ORACLE" Private Const LOGIN_ORACLE As String = "USUARIO" Private Const PASS_ORACLE As String = "CONTRASEÑA" Dim innerRS As ADODB.Recordset Private Sub Class_Initialize() On Error GoTo FalloConexion Set Conexion = New ADODB.Connection Conexion.ConnectionString = strMontarCad(LOGIN_ORACLE, PASS_ORACLE, "", SERVICIO_ORACLE) Conexion.Open Exit Sub FalloConexion: MsgBox Err.Description End Sub Private Function strMontarCad(ByVal PestrUsuario As String, ByVal PestrClave As String, ByVal PestrServidor As String, ByVal PestrBD As String) As String Dim mCadenaConex As String 'mCadenaConex = "Provider=MSDAORA.1;Password=" & PestrClave & ";User ID=" & PestrUsuario & ";Data Source=" & PestrBD & ";Persist Security Info=True" 'mCadenaConex = "Provider=OraOLEDB.Oracle.1;Password=" & PestrClave & ";User ID=" & PestrUsuario & ";Data Source= " & PestrBD & ";Persist Security Info=true" mCadenaConex = "Provider =Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\BaseDeDatos\Primarios.mdb;" strMontarCad = mCadenaConex End Function Public Function ExecuteQuery(SQL As String) As ADODB.Recordset Set innerRS = New ADODB.Recordset innerRS.CacheSize = 30 InnerRS. Open SQL, Conexion. ConnectionString, adOpenForwardOnly, adLockBatchOptimistic, adAsyncFetch Set ExecuteQuery = innerRS End Function Public Sub ExecuteSQL(SQL As String) Conexion. BeginTrans Conexion.Execute SQL Conexion.CommitTrans DoEvents End Sub Private Sub Class_Terminate() If (Conexion.State <> adStateClosed) Then Conexion.Close End If End Sub Y luego, para rellenar un combo algo como esto : Public Sub CargarDatos(ByVal Combo1 As ComboBox, strTabla As String, CampoId As String, CampoDescripcion As String, ArrayPosicionID() As Long, Optional ByVal Where As String = "", Optional ByVal blnOrderByDes As Boolean = True) Dim rsPrivado As Recordset Dim SQL As String SQL = "Select " & CampoId & " , " & CampoDescripcion & _ " from " & strTabla If Where <> "" Then SQL = SQL & " WHERE " & Where End If SQL = SQL & " GROUP BY " & CampoId & " , " & CampoDescripcion If blnOrderByDes Then SQL = SQL & " ORDER BY " & CampoDescripcion Else SQL = SQL & " ORDER BY " & CampoId End If Set rsPrivado = Conexion.ExecuteQuery(SQL) Combo1.Clear While Not rsPrivado.EOF Combo1.AddItem rsPrivado(1) ReDim Preserve ArrayPosicionID(0 To Combo1.ListCount - 1) ArrayPosicionID(UBound(ArrayPosicionID)) = rsPrivado(0) rsPrivado.MoveNext Wend If Combo1.ListCount <> 0 Then Combo1.ListIndex = 0 End If End Sub