Visual basic

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
1
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

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas