En esta nueva lección vamos se trabaja la parte de insertar nuevos controles en el formulario de Datos de la Empresa y darle estilos, agregué un control Image para el logo de la empresa.
Para la selección del logo se utiliza un control Common Dialog que no hemos utilizado, en el el vídeo explico su uso.
Este logo se utilizará más adelante para la impresión de la factura de ventas y para otros informes.
Vamos a implementar primeramente el código de la seleccionan del logo de la empresa para ello se utiliza el siguiente código:
Botón Abrir Imagen
En el evento Clic el botón cmdAbrirImage del Formulario frmDatosEmpresa queda de la siguiente manera:
Private Sub cmdAbrirImage_Click()
CommonDialog1.Filter = "Archivo de Imagen|*.jpg|*.jpeg"
CommonDialog1.ShowOpen
If CommonDialog1.FileName <> "" Then
txtLogo.Text = CommonDialog1.FileName
imgLogo.Picture = LoadPicture(txtLogo.Text)
Else
txtLogo.Text = ""
End If
End Sub
Si notamos en el código anterior la propiedad Filter nos indica que tipo de archivo vamos a buscar: “Archivo de Imagen|*.jpg|*.jpeg” con esto le estamos indicando que solo busque imágenes JPG o JPEG.
CommonDialog1.ShowOpen Le indicamos a CommonDialog que se abra.
AL cerrar el CommonDialog se ejecuta el código siguiente que sería el condicional donde validamos que el nombre del archivo sea diferente a vació de esta manera sabemos si se seleccionó o no un archivo.
Botón Guardar
El siguiente método se utiliza para Guardar o Actualizar los datos de la empresa, este código estará ubicado el módulo mod_Consultas:

Código:
Sub GuardarDatosEmpresa(Nombre As String, Propie As String, Nit As String, _
Telefono As String, Direcc As String, logo As String, _
Descrip As String, Regimen As Integer, Resoluc As String, _
FechaAp As Date, Rango1 As String, Rango2 As String, IniciarEn As String)
Dim RecorsetTemp As New ADODB.RecordSet
Dim sql As String
sql = "Select IdEmpresa from tblDatosEmpresa where IdEmpresa = 1 "
RecorsetTemp.Open sql, ConexionADO
If RecorsetTemp.RecordCount > 0 Then
sql = "Update tblDatosEmpresa SET NombreEmpresa ='" & Nombre _
& "', Propietario = '" & Propie & "',Nit='" & Nit & "',Telefonos='" & Telefono _
& "', Direccion='" & Direcc & "',Logo='" & logo & "',Descripcion='" & Descrip _
& "', Regimen=" & Regimen & ", Resolucion='" & Resoluc & "', FechaResol= '" & FechaAp _
& "', Rango1=" & Rango1 & ",Rango2=" & Rango2 & ",IniciarEn = " & IniciarEn & _
" where IdEmpresa = 1"
Else
sql = "Insert Into tblDatosEmpresa (IdEmpresa, NombreEmpresa, Propietario, Nit, Telefonos, " _
& " Direccion,Logo,Descripcion, Regimen, Resolucion,FechaResol, Rango1,Rango2,IniciarEn) " _
& " Values (1, '" & Nombre & "' , '" & Propie & "', '" & Nit & "', '" & Telefono _
& "', '" & Direcc & "', '" & logo & "', '" & Descrip & "', " & Regimen & ", '" & Resoluc _
& "', '" & FechaAp & "', " & Rango1 & ", " & Rango2 & ", " & IniciarEn & " ) "
End If
ConexionADO.Execute sql
MsgBox "Datos Guardados", vbInformation, "Guardar"
End Sub
El método anterior es llamado desde un nuevo procedimiento que cree llamado GuardarDatos del formulario frmDatosEmpresa:
Y este a su ves es llamado por el evento Clic del botón Guardar:
Private Sub cmdGuardar_Click() Call GuardarDatos Call DesabilitarControles End Sub
Si se nota en el código anterior desde este mismo evento llamo a otro procedimiento llamado DesabilitarControles que como su nombre lo indica se utiliza para deshabilitar Controles luego de haber guardado.
Al igual que cree el procedimiento para deshabilitar Controles también cree uno para habilitarlos llamado HabilitarControles que al contrario del anterior se utiliza para habilitar todos los controles esto servirá para cuando se vaya a editar los datos de la Empresa.
Sub DesabilitarControles()
txtNombreEmpresa.Enabled = False
txtPropietario.Enabled = False
txtNit.Enabled = False
txtTelefono.Enabled = False
txtDireccion.Enabled = False
cmdAbrirImage.Enabled = False
txtDescripcion.Enabled = False
cmdTipoRegimen.Enabled = False
txtResolucion.Enabled = False
txtFechaApro.Enabled = False
txtRango1.Enabled = False
txtRango2.Enabled = False
txtFacturarDesde.Enabled = False
cmdGuardar.Enabled = False
cmdModificar.Enabled = True
End Sub
Sub HabilitarControles()
txtNombreEmpresa.Enabled = True
txtPropietario.Enabled = True
txtNit.Enabled = True
txtTelefono.Enabled = True
txtDireccion.Enabled = True
cmdAbrirImage.Enabled = True
txtDescripcion.Enabled = True
cmdTipoRegimen.Enabled = True
If cmdTipoRegimen.ListIndex = 1 Then
txtResolucion.Enabled = True
txtFechaApro.Enabled = True
txtRango1.Enabled = True
txtRango2.Enabled = True
txtFacturarDesde.Enabled = True
End If
cmdGuardar.Enabled = True
End Sub
ComboBox Tipo Régimen
Este dato servirá para determinar si la empresa debe pagar o no impuestos si es Si cuando se ingresen los productos hay que especificar el valor del porcentaje de los impuestos, pero esto se verá más adelante.
Para lo anterior en el Evento Clic del ComboBox Régimen se utilizará el siguiente código, que lo que hace es habilitar o deshabilitar los campos de régimen, si la propiedad ListIndex = 0 se deshabilitan los controles de lo contrario se habilitan los controles.
Tenga presente que el ComboBox cmdTipoRegimen debe tener la propiedad Style = 2 – Dropdowm List
Nota: el código siguiente tiene algunas correcciones que no aparecen en el vídeo.
Private Sub cmdTipoRegimen_Click()
If cmdTipoRegimen.ListIndex = 0 Then
txtResolucion.Enabled = False
txtFechaApro.Enabled = False
txtRango1.Enabled = False
txtRango2.Enabled = False
txtFacturarDesde.Enabled = False
txtResolucion.Text = "0"
txtRango1.Text = "0"
txtRango2.Text = "0"
txtFacturarDesde.Text = "0"
txtFechaApro.Mask = ""
txtFechaApro.Text = ""
Else
If cmdTipoRegimen.Enabled = True Then
txtResolucion.Enabled = True
txtFechaApro.Enabled = True
txtRango1.Enabled = True
txtRango2.Enabled = True
txtFacturarDesde.Enabled = True
txtFechaApro.Mask = "##/##/####"
End If
End If
End Sub
Para finalizar en el Evento Load del formulario Datos Empresa debemos llamar a la función DesabilitarControles y el ComboBox Régimen dele tener su propiedad ListIndex = 0 luego de esto llamo al procedimiento LlenarDatos que me trae toda la información que tengo guardad en la base de datos.
El Evento Load del formulario queda de la siguiente manera:
Private Sub Form_Load() Call DesabilitarControles cmdTipoRegimen.ListIndex = 0 Call LlenarDatos End Sub
Siguiente Lección Parte 10 – Validación Form Datos Empresa y Creacion del Form Perfil de Usuario

