vb6.0 tips
Transcript of vb6.0 tips
Programación
PROGRAMACION
Centro de Capacitación EducArte 1/33
Programación INTRODUCIR CODIGO ............................................................................ 4 PROPIEDADES GENERICAS DE LOS OBJETOS ................................................. 5
Modificar el Valor de las propiedades ..................................................... 6 FORMULARIOS ................................................................................. 7
Para descargar un formulario ............................................................ 7 Agregar Nuevos Formularios .............................................................. 7
Agregar Menues A Nuestro Formulario ....................................................... 8 CONTROLES INTRÍNSECOS ...................................................................... 9
ETIQUETAS ..................................................................................... 9 CUADROS DE TEXTO .......................................................................... 9 MARCOS ........................................................................................ 9 BOTONES DE COMANDO ...................................................................... 9 CASILLAS DE VERIFICACION ................................................................ 10 BOTONES DE OPCION ........................................................................ 10 LISTAS Y LISTAS DESPLEGABLES ........................................................... 10 BARRAS DE DESPLAZAMIENTO .............................................................. 10 TIMER .......................................................................................... 10 DIBUJOS ....................................................................................... 11 LINEAS ......................................................................................... 11 OBJETO PICTURE ............................................................................ 11 OBJETO IMAGEN ............................................................................. 11 UNIDAD DE DISCO ............................................................................ 11 LISTA DE DIRECTORIO ....................................................................... 11 LISTA DE ARCHIVOS ......................................................................... 12
Agregar Componentes ......................................................................... 12 OBJETO COMMON DIALOG .................................................................. 13
Para disponer de el deberá agregar el componente ............................... 13 EL OBJETO ADO .............................................................................. 15 ENLAZAR OBJETOS AL CONTROL ADO ................................................... 16
PROPIEDADES IMPORTANTES DEL RECORDSET ADO .................................. 16 Conexión DATA ENVIRONMENT ............................................................ 17 RECONOCIENDO LOS EVENTOS DEL MOUSE ............................................. 19 RECONOCIENDO LOS EVENTOS DEL TECLADO ........................................... 19
TABLAS DE CODIGOS DE TECLAS ....................................................... 20 AGREGAR MENUES EMERGENTES .......................................................... 22 ORDENES DE ENTRADA Y SALIDA DE DATOS .............................................. 22
MSGBOX .................................................................................... 22 INPUTBOX .................................................................................. 22
EL OBJETO CLIPBOARD (PARA COPIAR Y PEGAR) ....................................... 23 DEFINICIÓN DE VARIABLES .................................................................. 24 ALCANCE DE LAS VARIABLES...............................................................24OPTION EXPLICIT ...........................................................................24Tipos de Variables ........................................................................... 25 FUNCIONES DE CONVERSION DE TIPOS ................................................... 26 OTRAS FUNCIONES UTILES PARA RECORDAR ............................................. 26 ESTRUCTURAS DE CONTROL ............................................................... 27
ESTRUCTURAS DE DESICION ............................................................. 27 ESTRUCTURAS DE REPETICION .......................................................... 27
PROCEDIMIENTOS ........................................................................... 28 FUNCIONES .................................................................................. 28 IMPRIMIR ...................................................................................... 29
Centro de Capacitación EducArte 2/33
Programación Usar el método PrintForm ............................................................... 29 Usar el Objeto Printer ................................................................... 29
INCLUIR COMENTARIOS ..................................................................... 30 GUIA SQL ...................................................................................... 31
PARA SELECCIONAR TODOS LOS CAMPOS DE UNA TABLA Y TODOS SUS REGISTROS ................................................................................. 32 PARA SELECCIONAR ALGUNOS CAMPOS DE UNA TABLA ............................. 32 PARA SELECCIONAR REGISTROS QUE CUMPLAN UNA CONDICION .................. 32 SELECCIONAR REGISTROS QUE ESTEN ENTRE DOS VALORES ........................ 32 SELECCIONAR REGISTROS PARECIDOS A .. ............................................ 32 SELECCIONAR REGISTROS QUE INCLUYAN A .......................................... 32 SELECCIONAR REGISTROS ORDENADOS ASCENDENTEMENTE ........................ 32 SELECCIONAR REGISTROS ORDENADOS DESCENDENTEMENTE ...................... 32 SUMAR UN CAMPO DADO ................................................................. 33 MAXIMO VALOR DE UN CAMPO DADO ................................................... 33 MINIMO VALOR DE UN CAMPO DADO ................................................... 33 PROMEDIO DE UN CAMPO DADO ........................................................ 33 CONTAR LA CANTIDAD DE REGISTROS DE UNA TABLA ............................... 33 SELECCIONAR LOS PRIMEROS n REGISTROS .......................................... 33 SELECCIONAR LOS DIFERENTES ......................................................... 33 AGRUPAR POR y SUMAR POR ............................................................ 33
Centro de Capacitación EducArte 3/33
Posición del formulario
Propiedades del Objeto
Explorador de Proyectos
herramientas
Formulario
Programación
Visual Basic
INTRODUCIR CODIGOAl hacer doble clic sobre un objeto determinado, se abrirá la siguiente ventana.La idea es colocar el código entre el
Private Sub objeto_evento
End Sub
Esto significa que el código se ejecutara cuando se dispare el evento de dicho objeto, en la muestra, cuando realicemos clic en el Botón de Comando.Si desea que se ejecute en otro evento, puede cambiarlo en la lista desplegable colocada en la parte superior derecha.
Centro de Capacitación EducArte 4/33
Programación Cada objeto tiene sus propios eventos
PROPIEDADES GENERICAS DE LOS OBJETOSCasi todos los objetos poseen una serie de propiedades las cuales enumeramos en forma genérica .
PROPIEDAD VALORES DESCRIPCIONVisible TRUE/FALSE Muestra o oculta el objetoEnabled TRUE/FALSE Hace que el objeto este disponible o noBackColor Color del objetoForeColor Color de la FuenteTop 0..9000 Distancia desde arriba al objetoLeft 0..12000 Distancia desde la izquierda al objetoHeight 0..9000 alto del objetoWidth 0..12000 ancho del objetoTooltiptext texto es el texto que se muestra al apuntarle
al objetoTabStop True/False indica si al pulsar el Tabulador es
posible lograr el enfoque a este objetoTabIndex 0,1,2, etc. es el orden que intercambiaran el
enfoque con el TabuladorMousePointer 1..99 da diferentes opciones de formas del
puntero, cuando lo enfocamos con el mouse
MouseIcon Me permite usar un icono personalizado si elegí _MousePointer=99
Aclaración Grafica sobre las propiedades de posición.
El ancho de un formulario maximizado es de 12000 y el alto es de 9000, pensando en una definición de pantalla de 800 * 600
Aclaración sobre las propiedades vinculadas a los colores:
Centro de Capacitación EducArte 5/33
Programación Ud. puede usar algunas constantes tales como: vbblack, vbred,
vbgreen, vbyellow, vbblue, vbmagenta,, vbcyan, vbwhiteo sea que seria valido: form1.backcolor= vbRed
también puede colocar el valor hexadecimal correspondiente al color
o sea que seria valido: form1.backcolor= &H000000FF&también puede usar la función RGB
o sea que seria valido: form1.backcolor= RGB(a,b,c)SIENDO A, B, Y C valores de 0..255 y cada uno representa la cantidad de ROJO, VERDE Y AZUL respectivamente
Modificar el Valor de las propiedades
Ud. puede modificar los valores de las diferentes propiedades en TIEMPO DE DISEÑO o sea mientras esta diseñando el programa, cambiando las mismas señalando el objeto y modificando el valor en la ventana de las propiedades. También las puede modificar en TIEMPO DE EJECUCION, o sea mediante código, que se ejecutara o no de acuerdo a lo que realice el usuario. Para esto deberá colocar el siguiente códigoobjeto.propiedad=valorobserve que el editor lo va ayudando, dado que una vez que escribe el nombre del objeto y digita el punto, aparecerán las propiedades disponibles, cuando tenga la propiedad que desea seleccionada, pulse la tecla TAB
Centro de Capacitación EducArte 6/33
Programación
FORMULARIOSForm (Frm)Caption: es el mensaje que mostrara en la barra de tituloWindows State : define como iniciara (Normal, Maximizado, Minimizado)Border Style: nos da opciones referente a si el formulario podrá cambiar la dimensión por parte del usuario, en tiempo de ejecuciónKeyPrevious : hace que el formulario cheque en primera instancia los eventos del mouse
Para llamar un formulario desde otroNombreformulario.Show ó Nombreformulario.Show VBMODAL , esta ultima variante no permite minimizar al formulario, lo que lo hace especialmente útil cuando requerimos que el usuario ingrese un dato, como una contraseña por ejemplo. pues hasta que no la ingresa y acepte no puede pasar a otro formulario
Para descargar un formulario
Unload NombredelFormulario UnLoad me
Establecer un formulario de inicioSi su proyecto tiene mas de un formulario Ud. Puede pulsar el botón derecho en el explorador de proyectos y acceder a las PROPIEDADES del proyecto, ahí tiene la posibilidad de cambiar el formulario de inicio
Agregar Nuevos FormulariosPulse el botón derecho en el explorador de proyectos y acceda a Formularios, observe que le permite agregar uno nuevo, o uno basado en una plantilla, lo que significa formularios muy comunes que ya están construidos y que Ud. puede tomarlos de modelo y modificar lo que crea conveniente
Centro de Capacitación EducArte 7/33
Programación
Agregar Menues A Nuestro Formulario
Si pulsa el botón derecho sobre un formulario, puede acceder al EDITOR DE MENUES, que le permite crear los mismos, el cuadro de dialogo es similar al siguiente
Debe colocar Caption y Name, puede definir Teclas de acceso rápido (ShortCut) a cada opción, puede activar o no chequeado, visible y disponible.Por ultimo con las flechas de esa ficha define el orden y los niveles
Nota: Si en el caption coloca un guión (– ) y coloca cualquier nombre, creara una línea separadora de menues
Centro de Capacitación EducArte 8/33
Programación
CONTROLES INTRÍNSECOSETIQUETAS
Label (Lbl) Caption: es el texto que mostraraAlignment : establece la alineaciónBackStyle : permite la opcion opaco y
trasparente CUADROS DE TEXTO
Text (Txt)Text : es el texto que mostraraMultiline: True /False, permite mas de una líneaFont : cambia el tipo de fuenteMaxlenght (máximo de caracteres)Password chart use * para que tenga una apariencia de
contraseñaLocked: True/False : bloque el objeto
MARCOSFrame (Fra)
Es especialmente útil como contenedor de objetos, permitiendo por ejemplo dejar visibles, a un grupo de objetos a la vez, dejando visible simplemente al marco.Caption: es el texto que mostraraAparence y BorderStyle,
son dos opciones para modificar su presentación
BOTONES DE COMANDOCommand (Cmd)
CaptionStyle (Grafico o Standard)
si esta Grafico habilita las opciones, tales como backcolor,Picture, etc.
Picture es la imagen que mostraraDefault (true para ser el botón que reaccionaria si
pulsáramos la tecla ENTER)Cancel (true para ser el botón que reaccionaria si
pulsáramos la tecla ESC)usar & nombre para activar con botón mediante ALT + letra
Centro de Capacitación EducArte 9/33
Programación
CASILLAS DE VERIFICACIONCheck (Chk)
CaptionValue (Nochequeado 0, Chequeado 1, Gris 2)Style (Grafical, Standard)
En estilo grafico se comporta como el botón de Negrita de Word
BOTONES DE OPCIONOption(Opt)
Solo es posible tildar un botón de opción a la vez, salvo que los mismos estén agrupados en marcos diferentesCaptionValue (True, False)Style (Grafical, Standard)
En estilo grafico se comporta como los botones de Alineación de Word
LISTAS Y LISTAS DESPLEGABLESCombo (Cbo) y List (Lst)
List (Ingresar las opciones en tiempo de diseño con Ctrl + Enter Text
ListIndex: elemento seleccionado (comenzando por el elemento CERO)
ListCount: cantidad de elementosAddItem “texto “ agrega un elemento a la listaClear borra toda la listaRemouveItem nro elimina un elemento en particular
BARRAS DE DESPLAZAMIENTOHscroll (HSb) y Vscroll (VSb)
Value: es el valor que tiene la barra en este momento
Max (32767 por omisión)Min (Cero por omisión)
TIMERTimer (Tmr)
Enabled (True/False)Interval (ingresarlo en milésimas, o sea 1000 es UN
SEGUNDO)
Centro de Capacitación EducArte 10/33
Programación
DIBUJOSShape (Shp)
BackStyle (Trasparente o solido)
Sólido habilita backcolor
Shape (Rectángulo, Circulo, Etc.)
Es la figura que desea
LINEASLine
X1 (coordenada horiz.. de inicio)X2 (coordenada horiz.. de fin)Y1 (coordenada vertical de inicio)Y2 (coordenada vertical de fin)BorderWidth establece el grosor de la línea, por omisión
es 1
OBJETO PICTUREPicture (Pic)
Sirve para Contener otros objetos o por supuesto para mostrar una imagenAsí se establece o se quita una imagen.Picture =LoadPicture (app.path + “\ …) ó.Picture =LoadPicture
OBJETO IMAGENImage(Img)
Se establece o se quita de la misma forma que el objeto PicturePictureStrech (True/False) me permite que la imagen se ajuste al marco del objetoUNIDAD DE DISCO
DriveList (drv).drive = “C:\”
LISTA DE DIRECTORIODirList (dir)
.Path = "C:\"
Centro de Capacitación EducArte 11/33
Programación
LISTA DE ARCHIVOSFileList (fil)
.Path = DirList.PathPattern = “ * .bmp” (por ejemplo)
Agregar ComponentesUd. Puede disponer de otros objetos, que no aparecen inicialmente en un proyecto.Para agregar un nuevo componente, vaya al Menú Proyecto Componentes, se encontrara con la siguiente ficha, en la misma Ud. Debe tildar el componente que le interesa agregar
Centro de Capacitación EducArte 12/33
Programación
OBJETO COMMON DIALOGCommond Dialod (Cd)
Para disponer de el deberá agregar el componente El mismo nos permite abrir los cuadros de diálogos del sistema, en la muestra vemos el de color, por ejemplo
.Showopen
.Showsave
.Showcolor (poner flags CDLCCRGBINIT)
.ShowFont (poner flags cdlcfscreenfonts o cdlcfsprintfont o cdlcfboth ).ShowPrinter
ejemploCommonDialog1.Flags = cdlCCRGBInitCommonDialog1.ShowColor
SLIDER MAX MINVALUE
PROGRESS BARMAXORIENTACIONSCROLLING
La idea es colocar en un timer con la orden : progressbar=progressbar + 1 para que la barra avance
UPDOWNmaxMINVALUEINCREMENT
. ORIENTACION
DTPICKER1 y MONTHVIEWEs un combo que despliega un almanaquemindatemaxdatevaluestarofweekFORMAT
STATUSBAR
Centro de Capacitación EducArte 13/33
Programación Agrega una barra de estado a nuestro formulario, Ud. puede con el botón
derecho – propiedades, agregarle paneles ( o sea dividirla en sectores) y escribir en ellos
mediante código seriaStatusBar1.Panels(1) = "Esto es una prueba”
MASKEDBOXEs basicamente un cuadro de texto, que nos permite ingresar
números con mascaras del tipo 99/99/99999.999.999-9estos ejemplos son validos
SysInfoEs un control no visible en tiempo de ejecucionme da datos del sistema tales como tipo de sistema operativo, tipo de
corriente, etcACSTATUS
0 El sistema no está utilizando alimentación AC.
1 El sistema está utilizando alimentación AC.
255 El estado de la alimentación AC es desconocido
BATTERYSTATUS
1 La carga de la batería es alta.
2 La carga de la batería es baja.
4 La carga de la batería es crítica.
8 La batería se está cargando.
128 El sistema no tiene batería.
255 El estado de carga de la batería es desconocido.
OSPLATFORM
0 Win32s
1 Windows 95
2 Windows NT
OSVERSIONDevuelve la versión del sistema operativo
WorkAreaHeightDevuelve el alto del escritorio
WorkAreaWdthDevuelve el ancho del escritorio
Centro de Capacitación EducArte 14/33
Programación
SSTABEs un control de fichas, en las propiedades del mismo puedetabcaptionorientation stylecomo propiedades mas importantes
TOOLBAREn las propiedades podremos insertar botones
INDEXCAPTIONVALUEpara reconocer que botón pulso colocamos el código en el evento click de la barraPrivate Sub Toolbar1_ButtonClick(ByVal Button As MSComctlLib.Button)MsgBox Button ' ESTE CODIGO DEVUELVE EL CAPTION DEL BOTONEnd Sub
imagelist (se carga de imagenes)
listview (muestra las imagenes de la listaListView1.Picture = ImageList1.ListImages(Combo1.listindex + 1).Picture
EL OBJETO ADO
Es el que nos permite enlazarnos a una base de datos, para configurarlo debe pulsar el Botón derecho sobre el y acceder a las propiedades, vera el siguiente cuadro de dialogo
Si luego pulsa el botón generar le aparecerá el siguiente cuadro
Centro de Capacitación EducArte 15/33
Elija TABLA o TEXT
si Eligio tabla, selecciónela
si Eligio TEXT, escriba la instrucción SQL(la veremos mas adelante)
Programación Elija Microsoft Jet 4.0, pulse siguiente y le permitirá localizar la BASE ACCESS a la cual nos pretendemos conectar.
una vez conectados busque la ficha ORIGEN DE LOS REGISTROS
ENLAZAR OBJETOS AL CONTROL ADOUd. puede enlazar muchos objetos directamente a los datos de una tabla, utilizando las propiedadesDATASOURCE y DATAMEMBER de dichos objetosAdemás puede agregar componentes especiales tales como DATAGRID, DATALIST, DATACOMBO etc, pensados para esos propósitos
PROPIEDADES IMPORTANTES DEL RECORDSET ADO
Adodc1.Recordset.AddNew agrega un registro en blancoAdodc1.Recordset.Deleted elimina el registro actualAdodc1.Recordset.Field(i) accede al campo i del registro
actualAdodc1.Recordset.UpdateBatch grabaAdodc1.Recordset.MoveFirst va al primer registroAdodc1.Recordset.MoveLast va al ultimo registroAdodc1.Recordset.MovePrevious
va al próximo registro
Adodc1.Recordset.MoveNext va al siguiente registroAdodc1.Recordset.EOF devuelve TRUE si estamos en el finAdodc1.Recordset.BOF devuelve TRUE si estamos en el
Centro de Capacitación EducArte 16/33
Programación inicio Buscar:
Buscar Adodc1.Recordset.Find ("nombre_campo" + "=" + valor)
Filtrar: Adodc1.Recordset.Filter = (“nombre_campo” + "=" + valor)
Ordenar: Adodc1.Recordset.Sort = "nombre_campo"
Conexión DATA ENVIRONMENTOtra forma de conectarse es agregando una conexión Data Environment, la diferencia fundamental es que la conexión no depende de un formulario, como es el caso de el objeto ADO, por lo que estableciendo una conexión puedo acceder a ella desde cualquier formulario, procedimiento ó modulo
Para agregar una conexión de este tipo, pulse el botón derecho en el explorador de proyectos, acceda a Agregar – Data Environment
Se encontrara con una pantalla como la siguiente
DataEnvironment: agrupa la totalidad de las conexiones a diferentes tablas.(nota: por practicidad coloque la propiedad name como DEConnection1: representa una conexión a una BASE DE DATOS AccessPor lo que hay que especificar cual es, para ello, pulse el botón derecho sobre la misma y acceda a propiedades,
Centro de Capacitación EducArte 17/33
Programación deberá seguir idéntico procedimiento que el explicado con el objeto ADO.Por un tema de practicidad llaméele a la conexión CN Por ultimo debemos definir el acceso a las diferentes Tablas de la base de datos, para ello pulse el botón derecho sobre la conexión (cn) y acceda a Agregar Comando. Cada comando que agreguemos se identificara con una tabla, como configurarlo?, pulse el botón derecho sobre el comando, acceda a las propiedades y siga los mismos pasos explicados para el objeto ADO.
A partir de ahora suponiendo que el comando le llamo CLIENTES, por ejemplo, entonces podrá, aplicar las mismas propiedades que las enumeradas con el objeto ado, pero, la sintaxis será la siguiente:
De.rsClientes.propiedad
Nota: observe que se anexa RS, al nombre definido por nosotros, ese RS significa RECORDSET
También puede enlazar objetos de un formulario de la misma forma que lo hacíamos antes, colocando DE en la propiedad DATASOURCE y Clientes en DATAMEMBER
Otro aspecto importante, es que si un formulario tiene objetos enlazados, no es necesario abrir la conexión, dado que se abre automáticamenteSin embargo si no es ese el caso debemos abrirla y cerrarla, generalmente:
En el evento load del formularioDe.rsClientes.Open
En el evento Unload del formularioDe.rsClientes.Close
Centro de Capacitación EducArte 18/33
Programación
RECONOCIENDO LOS EVENTOS DEL MOUSE
Existen 3 eventos vinculados, ellos sonMouse Down – ocurre cuando es presionado cualquier botón del mouseMouse Up – ocurre cuando el usuario suelta el botón del mouseMouseMove – ocurre cuando se mueve el mouse
Estos eventos usan los siguientes argumentosbutton – indica que botón pulso
1-izquierdo2-derecho4-central
shift - estado de las teclas Mayúscula, Ctrl y ALT1-Mayúscula presionado2-Ctrl presionado4-Alt presionado3-Mayúscula + Control presionado5- Mayúscula + ALT presionado6- Ctrl + ALT presionado7- Ctrl + ALT + MAYUSCULA presionado
x, y – coordenadas de ubicación del puntero
con estas aclaraciones, veamos un ejemplo simple que envía un mensaje a pantalla indicando en que posición se encuentra el puntero, en caso de pulsar el botón secundario del mouse
Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) If button=2 then
msgbox “Pulso el botón derecho en la posición:” + str(x) +” / “+str(y) end ifEnd Sub
RECONOCIENDO LOS EVENTOS DEL TECLADO
Centro de Capacitación EducArte 19/33
Programación Existen 3 eventos vinculados, ellos sonKeyPress – ocurre cuando es presionar una tecla correspondiente a un código ASCII
Private Sub Form_KeyPress(KeyAscii As Integer)If keyAScci=13 then
KeyAScii=0End If
End SubComo se observa maneja la variable KeyAscii, la cual se corresponde con el código Ascii de la tecla pulsada.
El ejemplo anula la acción de pulsar la tecla ENTER (código =13) dado que si pulsamos la tecla 13 asigna a keyAscii el valor CERO
KeyDown – ocurre al presionar cualquier tecla
KeyUp – ocurre al soltar cualquier tecla
Private Sub Form_KeyUp(KeyCode As Integer, Shift As Integer)
End SubObserve que EL EVENTO KeyDown, al igual que el evento KeyDown, utiliza los parametros, keycode y shift tiene los mismas posibilidades que la variable Shift de los eventos del mouse
TABLAS DE CODIGOS DE TECLAS Constante Valor Descripción
vbKeyLButton 1 Botón primario del mouse
vbKeyRButton 2 Botón secundario del mouse
vbKeyCancel 3 Tecla CANCEL
vbKeyMButton 4 Botón central del mouse
vbKeyBack 8 Tecla RETROCESO
vbKeyTab 9 Tecla TAB
vbKeyClear 12 Tecla SUPR
vbKeyReturn 13 Tecla ENTRAR
vbKeyShift 16 Tecla MAYÚS
vbKeyControl 17 Tecla CTRL
Centro de Capacitación EducArte 20/33
Programación
vbKeyCapital 20 Tecla BLOQ MAYÚS
vbKeyEscape 27 Tecla ESC
vbKeySpace 32 Tecla BARRA ESPACIADORA
vbKeyPageUp 33 Tecla RE PÁG
vbKeyPageDown 34 Tecla AV PÁG
vbKeyEnd 35 Tecla FIN
vbKeyHome 36 Tecla INICIO
vbKeyLeft 37 Tecla FLECHA IZQUIERDA
vbKeyUp 38 Tecla FLECHA ARRIBA
vbKeyRight 39 Tecla FLECHA DERECHA
vbKeyDown 40 Tecla FLECHA ABAJO
vbKeyPrint 42 Tecla IMPRIMIR PANTALLA
vbKeyInsert 45 Tecla INS
vbKeyDelete 46 Tecla SUPR
vbKeyNumlock 144 Tecla BLOQ NUM
Desde KeyA hasta KeyZ son iguales a sus equivalentes ASCII: 'A' hasta 'Z'
Constante Valor Descripción
vbKeyA 65 Tecla A
vbKeyZ 90 Tecla Z
Desde Key0 hasta Key9 son iguales a sus equivalentes ASCII: '0' hasta '9'
Constante Valor Descripción
vbKey0 48 Tecla 0
vbKey9 57 Tecla 9
Teclas del teclado numérico
Constante Valor Descripción
vbKeyNumpad0 96 Tecla 0
vbKeyNumpad9 105 Tecla 9
vbKeyMultiply 106 Tecla SIGNO DE MULTIPLICACIÓN (*)
vbKeyAdd 107 Tecla SIGNO MÁS (+)
Centro de Capacitación EducArte 21/33
Programación
vbKeySeparator 108 Tecla INTRO (teclado numérico)
vbKeySubtract 109 Tecla SIGNO MENOS (-)
vbKeyDecimal 110 Tecla PUNTO DECIMAL (.)
vbKeyDivide 111 Tecla SIGNO DE DIVISIÓN (/)
Teclas de función
Constante Valor Descripción
vbKeyF1 112 Tecla F1
vbKeyF16 127 Tecla F16
AGREGAR MENUES EMERGENTES
para agregar menú emergente a un objeto determinado, (lo que significa, que el menú aparecerá cuando pulsemos el botón derecho sobre ese objeto), Usted debe
crear el menú con el editor de menuessi no desea que dicho menú aparezca entre los menues
principales del sistemas, simplemente defínalo VISIBLE = FALSEAgregue código a el evento mouseDown del objeto en cuestión,
por ejemplo así:
Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) If Button = 2 Then PopupMenu nombremenu End IfEnd Sub
ORDENES DE ENTRADA Y SALIDA DE DATOS
MSGBOXSintaxis
MSGBOX (“mensaje”)
Esta orden me permite enviar mensajes a pantalla
INPUTBOXSintaxis
Centro de Capacitación EducArte 22/33
Programación Variable = INPUTBOX (“mensaje”, Titulo Ventana”)
La idea es que puedo capturar en la variable lo que responda el usuario
EL OBJETO CLIPBOARD (PARA COPIAR Y PEGAR)Con este objeto, podemos manejar el portapales de Windows, es decir copiar y pegar cosas, dentro de mi aplicación, o hacia otra aplicaciónes decir, podemos cargar el portapapeles con el contenido de un cuadro de texto, abrir Word, pulsar el botón derecho y pegar dicho texto.
CLIPBOARD.CLEAR (previo a cargarlo hay que borrar lo que tenia)
CLIPBOARD.SETTEXT “ UN TEXTO” (para cargarlo)
TEXT1 = CLIPBOARD. GETTEXT (para pegarlo en el cuadro de texto TEXT1 )
Centro de Capacitación EducArte 23/33
Programación
DEFINICIÓN DE VARIABLESFormas de declararlas:DIM nombre_variable AS tipo_de_variablePUBLIC nombre_variable AS tipo_de_variablePRIVATE nombre_variable AS tipo_de_variable
ALCANCE DE LAS VARIABLESRecuerde que varia el alcance de la variable de acuerdo a donde la define por ejemplo en las DECLARACIONES GENERALES y será Global a el formulario o en un procedimiento y tendría un alcance menor
OPTION EXPLICIT Si se coloca esta orden en las DECLARACIONES GENERALES, obliga a definir todas las variables previo a utilizarlos, es decir:option explicitdim a as integera=5(seria correcto)
dim a as integera=5(también seria correcto)
a=5(seria correcto, aunque no recomendable)
option explicita=5(seria incorrecto y daría un error)
Centro de Capacitación EducArte 24/33
Programación
Tipos de Variables
tipo de dato
cuanto ocupa valores que puede tomar
Byte 1 byte 0 a 255
Boolean 2 bytes True o False
Integer 2 bytes -32,768 a 32,767
Long(entero largo)
4 bytes -2,147,483,648 a 2,147,483,647
Single(coma flotante/ precisión simple)
4 bytes -3,402823E38 a –1,401298E-45 para valores negativos; 1,401298E-45 a 3,402823E38 para valores positivos
Double(coma flotante/ precisión doble)
8 bytes -1,79769313486232E308 a -4,94065645841247E-324 para valores negativos; 4,94065645841247E-324 a 1,79769313486232E308 para valores positivos
Currency(entero a escala)
8 bytes -922.337.203.685.477,5808 a 922.337.203.685.477,5807
Decimal 14 bytes +/-79.228.162.514.264.337.593.543.950.335 sin punto decimal; +/-7,9228162514264337593543950335 con 28 posiciones a la derecha del signo decimal; el número más pequeño distinto de cero es +/-0,0000000000000000000000000001
Date 8 bytes 1 de enero de 100 a 31 de diciembre de 9999
String(longitud fija)
Longitud de la cadena
Desde 1 a 65.400 aproximadamente
Variant(con números)
16 bytes Cualquier valor numérico hasta el intervalo de un tipo Double
Centro de Capacitación EducArte 25/33
Programación
FUNCIONES DE CONVERSION DE TIPOS
CBool(expresión)
CByte(expresión)
CCur(expresión)
CDate(expresión)
CDbl(expresión)
CDec(expresión)
CInt(expresión)
CLng(expresión)
CSng(expresión)
CStr(expresión)
CVar(expresión)
OTRAS FUNCIONES UTILES PARA RECORDARASC(“A”) devuelve el código del carácter ascii del carácter A RGB(rojo, verde, azul) variando de 0 a 255 cada colorSTR(numero) convierte el numero a textoInStr([inicio, string1, string2) - Busca( desde, en donde, que)Len(texto) – devuelve el largo del textoUCASE(texto) – convierte a mayúsculasLCASE(texto) – convierte a minúsculasLeft(string, length)Val(expresión) -devuelve el valor numérico de la expresiónSQR(numero) -devuelve la raíz cuadradaSIN(numero) -devuelve el seno del numeroCOS(numero) -devuelve el coseno del numero
Centro de Capacitación EducArte 26/33
Programación
ESTRUCTURAS DE CONTROL
ESTRUCTURAS DE DESICIONLas estructuras de decisión, permiten bifurcar en dos o mas
opciones la ejecución del código.Existen dos estructuras básicas, ellas son:1)IF condicion THEN
(sentencias)ELSE
(sentencias)ENDIF
2)SELECT CASE condición
CASE valor1 de la condición(sentencias)
CASE valor2 de la condición(sentencias)
END SELECT
ESTRUCTURAS DE REPETICIONLas estructuras de repetición, permiten ejecutar varias veces una
misma tareas, existen dos estructuras fundamentales1) La Estructura DO (que posee algunas variantes), esta estructura permite repetir un grupo de sentencias mientras se cumpla una condición dada. En el 1er caso evalúa la condición al principio y si se cumple ejecuta las sentencias hasta que se deje de cumplir, en el segundo caso primero ejecuta las sentencias y luego evalúa la condición. Esto hace que la diferencia es que la variante 2 asegura que por lo menos una vez se ejecutaran las sentencias DO WHILE condición
(sentencias)LOOP
DO(sentencias)
LOOP WHILE condicion
2) En el caso de la estructura FOR, esta pensada para utilizarla si sabemos a priori cuantas veces queremos que se ejecute el código.La palabra STEP es opcional, ella especifica si la variable i, se ira incrementando de 1 en 1 o lo hará de n en n
For i=0 to n STEP n(sentencias)
Centro de Capacitación EducArte 27/33
Programación NEXT
PROCEDIMIENTOS Los procedimientos son especialmente útiles para colocar código, que representen rutinas que crea que las voy a necesitar llamar desde diferentes puntos del programa. Evitando escribir el mismo código varias veces, lo que ayuda a darle mas legibilidad al programa, y mas fácil al momento de corregir esa rutina, dado que debo hacerlo en un solo lugar
PRIVATE SUB nombre_proc (argumentos)(sentencias)
END SUB
Se los llama mediante la orden: CALL nombre_proc(argumentos)
FUNCIONES El criterio de las funciones es similar a el de los procedimientos,
pero la diferencia fundamental radica en que las funciones devuelven un valor:
PRIVATE FUNCTION Nombre_Function (argumentos) AS TIPO(sentencias)nombre_function = ........
END SUBcomo se observa en el cabezal de la función aparece AS TIPO y se refiere al tipo de dato que devuelve la función
Veamos un ejemplo:FUNCTION cuadrado (a as integer) as integer
cuadrado= a * aend Function
la función ahí escrita calcula el cuadrado de un numero, tiene un parámetro “a”, lo que significa que para llamar a la función debo pasarle ese parámetro, por ejemplo:label1.caption = cuadrado(4)esto hará que la etiqueta LABEL1 muestre el valor 16o sea que para llamar una función, debo escribir:
Centro de Capacitación EducArte 28/33
Programación Nombre_Funcion(argumentos)
IMPRIMIR
Usar el método PrintForm
Este método envía una imagen del formulario especificado a la Impresora, lo que significa que obtendrá en la impresora una imagen idéntica al formulario que especifique
sintaxis:
nombreFormulario.PrinForm
Nota: si omite el nombre del formulario, entonces se imprimirá el formulario actual.
Si el formulario posee gráficos, estos solo se imprimen si la propiedad AutoRedraw del formulario es TRUE
Usar el Objeto Printer
Printer.Print “texto a imprimir”Printer.PrintQuality = 300 es un numero correspondiente a la calidad de la impresora en el ejemplo 300 ppp.Print.ScaleLeft se refiere a el margen izquierdoPrint.ScaleTop se refiere a el margen superiorPrint.zoom=100 por defecto es 100%Print.CurrentX posición en eje XPrint.CurrentY posición en eje Y, o sea en que línea va a imprimirPrint.EndDoc envía todo lo cargado a la impresoraPrint.NewPage hace el salto de pagina
Veamos un Ejemplo:De.RsClientes.MoveFirsth ‘va al primer clientePrinter. CurrentX=20 ‘define imprimir en columna 20Printer.CurrentY=5 ‘define imprimir en fila5DO WHILE NOT De.RsClientes.EOF() ‘mientras haya clientes
Printer. Print De.RsClientes.Field(1) ‘imprimir el campo 1Printer.CurrentY=Printer.CurrentY+1 ‘avanzar de lineaDe.RsClientes.MoveNext ‘avanzar cliente
LOOP ‘repetir
Centro de Capacitación EducArte 29/33
Programación Print.EndDoc ‘imprimir todoINCLUIR COMENTARIOS
Tengo dos formas de incluir comentarios con el fin de clarificar la “intención” del códigouna de ellas es escribir al principio de la línea la orden REM seguida de un espacio en blanco y a continuación puedo escribir lo que deseeejemplo:REM esto es un comentario que visual me permite incluir
La otra forma es colocar una comilla simple al finalizar cualquier orden escritaEjemplo
Do While NOT De.RsClientes.Eof() ' este comentario también es validoEs importante incluir comentarios para clarificar el código, Ud. mismo lo agradecerá a la hora de hacer modificaciones
Centro de Capacitación EducArte 30/33
Elija TEXT
escriba la instrucción SQLtipo SELECT * From Clientes
Programación
GUIA SQL
Se establece una conexión SQL, tanto sea a un objeto ADO o una conexión Data
Para establecer dicha conexión le recomendamos ver Objeto Ado, en este mismo manual, la idea es configurar el objeto ADO ó configurar el Data environment como ya fue explicado pero cuando nos enfrenemos a la siguiente ficha:
Si la conexión es SQL, nos permite incluir CONSULTAS SQL a nuestro código, lo que nos dará grandes posibilidades en cuanto al manejo de los datos Existe muchas sentencias SQL posibles, para incluirlas a su codigo debera colocar las siguientes ordenes:1) si es un ADO
Adodc1.RecordSource = sentencia sqlAdodc1.Refresh
2) si es un DATA ENVIRONMENT
DE.Commands("NombreTabla").CommandText = sentencia sqlUnload Form1Form1.Show
suponemos que en el Unload del Form1, esta la orden NombreTabla.Close, de no ser así inclúyala
Centro de Capacitación EducArte 31/33
Programación PARA SELECCIONAR TODOS LOS CAMPOS DE UNA TABLA Y TODOS SUS REGISTROS
“SELECT * FROM nombre_de_la_tabla”
PARA SELECCIONAR ALGUNOS CAMPOS DE UNA TABLA"SELECT campo1,campo2 FROM nombre_de_la_tabla "
PARA SELECCIONAR REGISTROS QUE CUMPLAN UNA CONDICION"SELECT * FROM nombre_de_la_tabla WHERE CONDICION"
Ejemplos:-Condición sobre campos numéricos, en este caso incluyendo el operador OR, también es valido AND"SELECT * FROM nombre_de_la_tabla WHERE ID=32 OR ID=42"
-Condición sobre campos Memo, observe que debe incluir los signos de % adelante y atras del valor buscado"SELECT * FROM nombre_de_la_tabla WHERE HISTORIAL = '%OFFICE%'"
-Condición sobre campos TEXTO, observe que debe incluir los signos de ' (comilla simple y recta) adelante y atrás del valor buscado"SELECT * FROM nombre_de_la_tabla WHERE NOMBRE = 'JUAN'"
-Condición sobre campos FECHA, observe que debe incluir los signos de # adelante y atrás del valor buscadoSELECT * FROM nombre_de_la_tabla WHERE NACIMIENTO = #01/01/1980#"
SELECCIONAR REGISTROS QUE ESTEN ENTRE DOS VALORES"SELECT * FROM nombre_de_la_tabla WHERE campo_n BETWEEN 30 AND 60"
SELECCIONAR REGISTROS PARECIDOS A .."SELECT * FROM nombre_de_la_tabla WHERE campo_n LIKE 'L*' "observe que son validos los comodines * y ?
SELECCIONAR REGISTROS QUE INCLUYAN A"SELECT * FROM nombre_de_la_tabla WHERE campo_n IN('OFFICE','JUNIOR')"
SELECCIONAR REGISTROS ORDENADOS ASCENDENTEMENTE"SELECT * FROM nombre_de_la_tabla ORDER BY campo_n "
SELECCIONAR REGISTROS ORDENADOS DESCENDENTEMENTE"SELECT * FROM nombre_de_la_tabla ORDER BY campo_n DESC"
Centro de Capacitación EducArte 32/33
Programación SUMAR UN CAMPO DADO"SELECT SUM(NombreCampo) FROM nombre_de_la_tabla "
MAXIMO VALOR DE UN CAMPO DADO"SELECT MAX(NombreCampo) FROM nombre_de_la_tabla "
MINIMO VALOR DE UN CAMPO DADO"SELECT MIN(NombreCampo) FROM nombre_de_la_tabla "
PROMEDIO DE UN CAMPO DADO"SELECT AVG(NombreCampo) FROM nombre_de_la_tabla "
CONTAR LA CANTIDAD DE REGISTROS DE UNA TABLA"SELECT COUNT(*) FROM nombre_de_la_tabla "
SELECCIONAR LOS PRIMEROS n REGISTROS
"SELECT TOP n CAMPO1,CAMPO2 FROM nombre_de_la_tabla ORDER BY campox
SELECCIONAR LOS DIFERENTESSELECT DISTINCT campo1, campo2 FROM nombre_de_la_tabla
AGRUPAR POR y SUMAR PORSELECT campox,sum(campoy) FROM nombre_de_la_tabla GROUP BY campox
Ejemplo: agrupar a los clientes por Zona y sumar el campo saldo de dichos clientes
Centro de Capacitación EducArte 33/33