miércoles, 14 de abril de 2010

Añadir skin a Formulario en Vb6

Hola a todos, aqui escribiendo aún de las experiencias en VB6, esta viejito el lenguaje para este tiempo, pero aún es un lenguaje muy utilizado por su sencillez, facilidad de programación, politicas, en fin...

Como poner un skin a un formulario o a un programa de VB6, bueno podemos descargar y ver los skin desde las url´s:

Si nuestro equipo no lo tiene (el mio no lo tenia) añadimos el .ocx "actskin4.ocx" que podemos descargar de internet, luego debemos copiarlo en la carpeta system32 y registrarlo con la linea: regsvr32 /s actskin4.ocx ó con regsvr32 /s  C:\WINDOWS\system32\actskin4.ocx, por si las dudas, guia.

Listo, ahora agregamos el Componente, ubicados en la mesa de trabajo de nuestro proyecto en VB6 vamos al menú de Proyecto->Componentes y seleccionamos en Controles la libreria "ActiveSkin 4.0 Type Library", arrastramos el objeto de skin al proyecto y desde la ventana de código en el Load( ) de formulario añadimos estas líneas de código:


 Form1.Skin1.LoadSkin App.Path & "\Skins\LinuxGnome.skn"
    Skin1.ApplySkin Form1.hWnd

Para añadirle el skin, eso es todo.

Advertencia: los objetos Label no se pueden visualizar para ver los Label utilicen el objeto LabelSkin que aparece al agregar la libreria y ya se ve con el tema o skin seleccionado.

Hasta pronto.

miércoles, 7 de abril de 2010

Abrir un pdf desde vb6

Hola, para abrir un archivo .pdf desde shell hay varios códigos por hay en internet, pero, no se de que dependa, algunos generar errores, el código que les comparto funciona perfecto, espero les sea de utilidad.


Shell ("rundll32.exe url.dll,FileProtocolHandler " & App.Path & ("\Turnos.pdf")), vbMaximizedFocus

martes, 6 de abril de 2010

Accedo a Base de Datos con ODBC desde vb6

Hola a todos, aprendí a conectarme a una base de datos a través de un DNS o por ODBC y bueno les voy a compartir el código, hay les va, dudas u opiniones son bien recibidas.

Recuerden para que no les genere ningun error en el menú Proyecto - Referencias y agregan la referencia Microsoft ActiveX Data Objects 2.1 Library.


Public Cn As ADODB.Connection
Private Sub Form_Load()
Conectado
End Sub



Public Function Conectado() As Boolean
    Dim cadena As String
    Dim Rs As ADODB.Recordset
       
        Set Rs = New ADODB.Recordset


        On Error GoTo senal
        Set Cn = New ADODB.Connection
        cadena = "DSN=DNS_NAME;UID=USER;PWD=PASSWORD"

        Cn.ConnectionString = cadena
        Cn.Open
        Conectado = True
        MsgBox ("Conectado")
       
        Set Rs = Cn.Execute("select * From emp", , adCmdText)

       
        Do Until Rs.EOF()
            MsgBox Rs(0) & " " & Rs(1) & " "
            Rs.MoveNext
        Loop
           
        Rs.Close
        Set Rs = Nothing
        Cn.Close
Exit Function

senal:
        Conectado = False
        MsgBox Err.Description
        Err.Clear
End Function

martes, 30 de marzo de 2010

Certificación de Microsoft

Hola Microsoft ofrece descuentos para estudiantes hasta del 50%, para diferentes certificaciones, Inscribase.

jueves, 25 de marzo de 2010

Pregunta

Tengo esta pregunta hace varios días, ojala alguien que pase por el blog la pueda responder.

He podido visulaizar un reporte en Crystal con el código que aparece en una de las publicaciones, mi pregunta es como puede darle a Crystal el nombre de usuario y la contraseña para que acceda a la Base de Datos de donde va a extraer los datos para el reporte en Crystal?????

Actualizacion: 25 de Marzo de 2010 16:43

Encontré una solución, bastante rápido. Bueno lo que hace es recorrer las tablas del reporte y luego me permite esportar el reporte a pdf o a rpt.


Public Sub Form_Load()

   Dim crystalApp As New CRAXDRT.Application
   Dim crxTable As CRAXDRT.DatabaseTable
   Dim crystalReport As CRAXDRT.Report

   Set crystalReport = crystalApp.OpenReport(App.Path & "\report_name.rpt")

   crystalReport.DiscardSavedData
  'Pone el DNS para todas las tablas en un BD
   On Error GoTo BadCrystalConnection
   For Each crxTable In crystalReport.Database.Tables
   crxTable.ConnectionProperties.DeleteAll
   crxTable.ConnectionProperties.Add "DSN", "CONTROLACCESO"
   crxTable.ConnectionProperties.Add "Database", "ACCESSCONTROL"
   crxTable.ConnectionProperties.Add "User ID", "sa"
   crxTable.ConnectionProperties.Add "Password", "sistemas"

'Unsure why this is required but without it there is an error message saying that tables cannot be found

   crxTable.Location = crxTable.Location
   Next crxTable

   On Error GoTo 0
   crystalReport.Export
   Exit Sub

BadCrystalConnection:
MsgBox "El DNS de conexión para Crystal es invalido"

End Sub


Ahora la necesidad es que no me pida activar cuenta con Outlook y que al guardar el archivo en pdf, cierre el formulario que hace este proceso.




Actualización: 6 de Abril de 2010

Solucionado por completo, antes lo que hacia era llamar un formulario desde el formulario main y al exportar el reporte quedaba el formulario 2 cargado y no se podia descargar de ninguna manera, lo solucioné no llamando un formulario nuevo sino desde el formulario del main exporté el reporte.


Para solucionar lo del Outlook. Cuando lo ejecutaba aparecia un error que decia:"No hay ningún cliente de correo predeterminado o el cliente actual no puede procesar la solicitud de mensajeria...", la solución es: desde el Internet Explorer ir a Herramientas - Opciones de Internet - Programas - Correo Electrónico poner Microsoft Office Outlook, y ya esta no sale más el mensaje.

Si tienen alguna solución alternativa es bien recibida.


Agradezco sus comentarios.

lunes, 15 de marzo de 2010

Instrucciones sql desde vb6

Hola, aqui sigo aprendiendo VB6 y compartiendo lo aprendido, pues la verdad no he encontrado mucha informacion practica y pues lo que tengo es porque mis compañeros de trabajo me lo han enseñado.

Bien vamos a ver la secuencia para ejecutar consultas de SQL desde VB6 con ADO.

Dim Inouttb As ADODB.Connection

Set Inouttb = New ADODB.Connection
Inouttb.ConnectionString = "DSN=CONTROLACCESO"
Inouttb.Open
Inouttb.Execute "SELECT * FROM TABLE"
Inouttb.Close



Comentarios?

jueves, 11 de marzo de 2010

Visor de Crystal Reports 11 con Visual Basic 6

Hola a todos, bueno sin más, voy a publicar el codigo para hacer un visor de reportes de Crystal hecho en VB6, al final les doy el enlace de donde lo encontre.

Bueno, manos a la obra, los pasos para crear el Visor son:
  1. Cree un vb project ( standard exe o ocx).
  2. Vera un formulario vacio.
  3. Vaya a Project > Components
  4. Seleccione "Crystal Activex Report Viewer Library 11.0" y de click en OK, aparecera un nuevo icono en la barra de herramientas.
  5. Luego vaya a Project > References.
  6. Y seleccione "Crystal Report Activex Designer Runtime Library 11.0"
  7. En el formulario vacio, arrastre un crystal report viewer desde la barra de herramientas. Y nombrelo "crsv1".
  8. Luego escriba el siguiente codigo:


'***************************************************************************************
'* This project uses the following reference for the CRAXDRT object
'* Crystal Report Activex Designer Runtime Library 11.0
'***************************************************************************************

Private Sub Form_Load()

Dim Report As New CRAXDRT.Application
setViewerSize
crsv1.ReportSource = Report.OpenReport("D:\USUARIO\reporte.rpt")
crsv1.ViewReport

End Sub



Private Sub form_resize()
setViewerSize
End Sub

Private Sub setViewerSize()

crsv1.Width = Form1.Width - 100
crsv1.Height = Form1.Height - 400

End Sub


Eso es todo, el enlace vbforums.

Comentarios?
 

Sample text

Sample Text

Sample text