Archive for codigo

Exportar datos de Visual basic a Word

Algunas veces cuando desarrollamos aplicaciones es necesario crear reportes, y comúnmente se nos viene a la mente diversas formas de crearlos, muchos programadores que conozco utilizan la aplicación Crystal Reports, aun en mi trabajo el área administrativa utiliza este software, sin embargo algunos no contamos con dicha licencia para crear aplicaciones comerciales, por lo que nos quedan como opciones utilizar MSExcel, o en su caso MSWord, para este post expkicare a grandes rasgos como enviar algunos datos desde VB6 a MSWord.


'declaramos los objetos
Public MSWord As New Word.Application
Public Documento As Object

Private Sub cmd_exportar_click()

                'Establecemos la ruta de nuestro archivo
                ruta = App.Path & "\orden.doc"

                'Seteamos el archivo al objeto documento
                Set Documento = MSWord.Documents.Open(ruta)

                'opcionalmente podemos guardar el archivo
                'en mi caso lo guardo con una extensión diferente (cab|tmp|pot|etc)
                MSWord.Selection.Document.SaveAs (App.Path & "\printme.cab&quot ;) 

                'Establecemos la fuentre que utilizaremos
                MSWord.Selection.Font.Name = "Arial"

                'Configuramos la alineacion de nuestro parrafo
                MSWord.Selection.Paragraphs.Alignment = wdAlignParagraphCenter

                'Activamos la fuente en Negrita
                MSWord.Selection.Font.Bold = True

                'Y el tamaño a 16 puntos
                MSWord.Selection.Font.Size = 16

                'con esta opcion podemos comenzar a escribir dentro de nuestro docuemnto
                MSWord.Selection.TypeText "Aqui podemos escribir el texto en el documento" & vbCrLf

                'Declaramos una tabla de 1 fila por 3 columnas
                MSWord.Selection.Tables.Add MSWord.Selection.Range, 1, 3

                'Seleccionamos la celda 1,2
                MSWord.Selection.Tables(1).Cell(1, 2).Select

                'establecemos el ancho de la celda
               MSWord.Selection.Tables(1).Cell(1, 2).Width = 70

                'configuramos los bordes
                MSWord.Selection.Tables(1).Cell(1, 2).Borders(wdBorderTop).Visible = True
                MSWord.Selection.Tables(1).Cell(1, 2).Borders(wdBorderLeft).Visible = True
                MSWord.Selection.Tables(1).Cell(1, 2).Borders(wdBorderBottom).Visible = True
                MSWord.Selection.Tables(1).Cell(1, 2).Borders(wdBorderRight).Visible = True

                'Y la alineación del texto dentro de la celda
                MSWord.Selection.Paragraphs.Alignment = wdAlignParagraphLeft

                'Seguido escribimos texto en dicha celda
                MSWord.Selection.TypeText "Nombre"

                'seleccionamos la celda 1,3
                MSWord.Selection.Tables(1).Cell(1, 3).Select

                'Establcemos el color de fondo de la celda (Trama)
                MSWord.Selection.Cells.Shading.BackgroundPatternColor = wdColorGray20

                'Escribimos en dicha celda
                MSWord.Selection.TypeText "nombre2"

                'esta opcion nos permite salir de la edición de la tabla, o bajar una fila
                MSWord.Selection.MoveDown

                'por ultimo mostramos el documento de word
                MSWord.Visible = True

                'vaciamos los objetos de la  memoria
                Set documento = nothing
                Set Msword=nothing

end sub

con esto podemos establecer los datos del reporte que encesitemos, auqnue es algo mas laborioso que utilizar Crystal Reports, es una opción que hay que tomar en cuenta. espero le sea de ayuda a alguno de los lectores.

saludos (^o^)_v

Comments (7)

Operaciones SQL en VB6

Las operaciones CRUD (Create, Retrieve, Update, Delete), son utilizadas comúnmente en consultas SQL, más aun dentro de programas que utilicen alguna base de datos, por lo que aquí dejo el código para una pequeña función que ejecuta dichas operaciones en determinada tabla, haciendo uso del ADODB de Visual basic.


'****************************
'Modulo con declaraciones y funciones
'****************************

Public xcon As New ADODB.Connection  'Declaramos un objeto ADO, 

Public Function exec_sql(ByVal SQL As String) 'Función de operaciones CRUD, sobre la Base de datos.
    On Error GoTo chec
        With xcon
            .BeginTrans
            .Execute SQL
            .CommitTrans
        End With
    Exit Function
chec:
    xcon.RollbackTrans
    MsgBox Err.Description
End Function
'-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
'-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-

'****************************
'*******     Formulario
'****************************

Private Sub cmd_record_Click()
        ´'Aquí generamos nuestra consulta; en este caso un "Update"
        SQL = "Update consumibles set existencia=" & cantidad & " where id=" & ID & ""

        'Seguido, enviamos la query a nuestra función
        exec_sql SQL
End Sub
'-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
'-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-

Por ahora solo he publicado código en VB6, más adelante utilizare otros lenguajes.

* That’s all folks *

Comments

Visual basic buscar cadena en listas

Bueno hoy les traigo más código, muchas veces cuando hago búsquedas en MSDN me desespero por el tiempo que tarda en mostrar los resultado, aunque este trozo de código no funciona igual de efectivo, me resulta mas sencillo hacer búsquedas en las listas, les cuento que me desperté a las 6:00 am y sentí un gran ocio, así que encendí mi laptop y me puse a escribir una pequeña rutina para hacer una busca de texto sobre una lista (listbox), es algo muy sencillo y creo que hasta cutre, lo sient tendrá que soportarlo así que lo dejo para que lo copien y pegue o incrusten en un modulo, con una función que reciba, la lista y el cuadro de texto jajaja o haber que se les ocurre.

Primero necesitamos obviamente un formulario (jajaja) un textbox y un listbox, me quedo mas o menos así

Luego añadimos los ingredientes en el código:


Private Sub Form_Load()
'Lleno mi lista
    lista_nombres.AddItem "Qwerty"
    lista_nombres.AddItem "Dvorak"
    lista_nombres.AddItem "Bixho"
    lista_nombres.AddItem "Bugcillo"
    lista_nombres.AddItem "Fzagato"
    lista_nombres.AddItem "Adairstarkey.wordpress.com"
    lista_nombres.AddItem "José Luis"
    lista_nombres.AddItem "AlbertDeath"
    lista_nombres.AddItem "Kike Santiago"
    lista_nombres.AddItem "CLAU M."
    lista_nombres.AddItem "GPretorian"
    lista_nombres.AddItem "Areyce"
    lista_nombres.AddItem "Canito"
    lista_nombres.AddItem "León"
    lista_nombres.AddItem "Dwiki"
    lista_nombres.AddItem "Mono"
    lista_nombres.AddItem "Varv"
End Sub

Private Sub txt_busca_Change()
'La mini-rutina
 For i = 0 To lista_nombres.ListCount
        If StrComp(Mid(lista_nombres.List(i), 1, Len(txt_busca)), txt_busca, vbTextCompare) = 0 Then
            lista_nombres.Selected(i) = True
        Exit For
       End If
   Next
End Sub

Y Listo!!!!!
Que pasen buen día,
HOY ES SÁBADO voy a descansar jejeje.

Comments

Visual basic + Active directory

Hace unos dias, estuve desarrollando una pequeña aplicación en la cual era necesario extraer la lista de usuarios de el active directory que se encuentra en el servidor, vaya que tarde algunas horas (casi 4 hrs), pero al final lo resolví de una manera un poco práctica. Primeramente revisemos la estructura del active directory

Como pueden darse cuenta, tenemos el dominio, un grupo de trabajo, y por ultimo los usuarios de ese grupo.

Para leer de nuestro active directory desde visual basic añadimos en la referencia Active DS Type Library.

Con el siguiente código podremos accesar a la lista de usuarios y cargarla en un listbox.


Public Function load_user(ByVal lista As ListBox)
Dim ou As IADs
On Error GoTo Cleanup
'La sintaxis en DC, y en OU corresponden a los
'folders que deseamos acceder.
Set ou = GetObject("LDAP://OU=Usuarios, OU=group" & _
", DC=domain, DC=org " )
' El child en OU es Usuarios
For Each Child In ou
    nombre = Mid(Child.Name, 4)
    If valida(nombre) = False Then
        lista.AddItem nombre
   End If
Next
Set ou = Nothing
Exit Function
Cleanup:
    If (Err.Number  0) Then
        MsgBox ("Ha ocurrido el error: " & Err.Number)
    End If
    Set ou = Nothing
End Function

Con esto tendremos un listbox, cargado con los nombre de los usuarios, jejejeje, para poner la sintaxis de codigo VB6 me sirvio la pagina de Vargas, donde trae un vinculo hacia los FAQ’s de wordpress, donde explica la sintaxis a utilizar para que se vea un poco mas bonito el código.

saludos

Comments (2)

Glider

Hoy solo quería hacer referencia al Glider o también llamado deslizador, el cual mas que un símbolo es un emblema utilizado para designar a hacker, esta figura es tomada del juego de la vida, si gustan leer más sobre el tema pueden visitar los enlaces :D

Saludos.

Enlaces:
Wikipedia
Mas que código
El blog de Pedro

Comments