Red de conocimientos turísticos - Conocimientos sobre calendario chino - "¿Cómo dejar que ole controle el bucle hasta la mitad?

"¿Cómo dejar que ole controle el bucle hasta la mitad?

1. "amp; "reemplazo" " 2. La denominación de variables se realiza caso por caso, las declaraciones están escalonadas y el mantenimiento del código fuente

3. Desarrolle los siguientes buenos hábitos de "convenciones de nomenclatura de objetos" 4. Cuando hay una elección simple. Si existen condiciones, use la función IIf()

5. Intente usar Debug.Print para depurar 6. Cuando modifique repetidamente las propiedades de un objeto, intente usar With. ...Termina con

p>

7. Intente usar íconos de mensajes en MsgBox para que el programa esté más estandarizado 8. Use enumeraciones cuando sea posible

1. Use "amp;" en lugar de ""

En los lenguajes de programación de muchas personas, " " se usa para concatenar cadenas. Esto puede llevar fácilmente a la ambigüedad. Es una buena práctica utilizar "&" para concatenar cadenas.

Incorrecto:

Atenuar sMessage como cadena

sMessage = "1" "2"

Correcto:

Dim sMessage As String

sMessage = "1" amp "2"

Nota: Hay un espacio después de "amp; "

2. Variable Situación de nombres, entrelazado de declaraciones, mantenimiento del código fuente

Comparemos los siguientes dos fragmentos de código:

Código que es difícil de leer:

Dim SNAME As String

Atenuar NTURN como entero

Si NTURN = 0 entonces

Si SNAME = "vbeden" entonces

Hacer mientras NTURN lt;

NTURN = NTURN 1

Bucle

End If

End If

Código fácil de leer:

Atenuar sName como cadena

Atenuar nTurn como entero

Si nTurn = 0 entonces

Si sName = "vbeden" entonces

Hacer mientras nTurn lt 4

nTurn = nTurn 1

Bucle

Finalizar si

Finalizar si

[Volver al índice]

3. Desarrolle los siguientes buenos hábitos de "convención de nomenclatura de objetos"<

Prefijos de control recomendados

Ejemplos de prefijos de tipo de control

Panel 3D pnl pnlGroup

Datos ADO ado adoBiblio

Botón de animación ani aniMailBox

Casilla de verificación chk chkReadOnly

Cuadro combinado, cuadro de lista desplegable cbo cboEnglish

Botón de comando cmd cmdSalir

Cuadro de diálogo común dlg dlgFileOpen

Comunicación con comFax

Control (utilizado en procedimientos cuando se desconoce el tipo específico) ctr ctrCurrent

data dat datBiblio

cuadro combinado enlazado a datos cuadro combinado enlazado a dbcbo dbcbo dbcboLanguage

Cuadrícula enlazada a datos dbgrd dbgrdQueryResult

Datos-

Cuadro de lista enlazado a datos dblst dblstJobType

Combinación de datos dbc dbcAuthor

Cuadrícula de red de datos dgd dgdTitles

Lista de datos dbl dblPublisher

Repetidor de datos drp drpLocation

Selector de fecha dtp dtpPublished

Cuadro de lista de directorio dir dirSource

Cuadro de lista de controladores drv drvTarget

Cuadro de lista de archivos fil fi

lFuente

barra de desplazamiento plana fsb fsbMove

tabla frm frmEntry

marco fra fraLanguage

instrumento gau gau gauStatus

Gráfico gra graRevenue

Cuadrícula grd grdPrecios

Cuadrícula flexible jerárquica flexflexOrders

Barra de desplazamiento horizontal hsb hsbVolume

Imagen img imgIcon

Combinación de imágenes imgcbo imgcboProduct

Lista de imágenes ils ilsAllIcons

Etiqueta lbl lblHelpMessage

Casilla de verificación ligera lwchk lwchkArchive

Cuadro combinado ligero lwcbo lwcboAlemán

Botón de comando liviano lwcmd lwcmdRemove

Marco liviano lwfra lwfraSaveOptions

Desplazamiento horizontal liviano lwhsb lwhsbVolume

Cuadro de lista liviano lwlst lwlstCostCenters

Botón de opción ligero lwoptlwoptIncomeLevel

Cuadro de texto ligero lwtxt lwoptStreet

Barra de desplazamiento vertical ligero lwvsb lwvsbYear

Línea lin linVertical

Cuadro de lista lst lstPolicyCodes

Vista de lista lvw lvwHeadings

Mensaje MAPI mpm mpmSentMessage

Sesión MAPI mps mpsSession

MCI mci mciVideo

Menú mnu mnuFileOpen

Vista mensual mvw mvwPeriod

MS Chart ch chVentasporRegión

MS Flex grid msg msgClients

MS Tab mst mstFirst

Contenedor OLE ole oleWorksheet

Botón de opción opt

Cuadro de imagen pic picVGA

Clip de imagen clp clpToolbar

ProgressBar prg prgLoadFile

Datos remotos rdrdTitles

RichTextBox rtf rtfReport

Forma shp shpCircle

Control deslizante sld sldScale

Girar spn spnPages

StatusBarsta staDateTime

SysInfo sys sysMonitor

Pestaña TabStrip tabOptions

Cuadro de texto txt

txtApellido

Temporizador tmr tmrAlarma

Barra de herramientas tlb tlbAcciones

TreeView tre treOrganización

ArribaAbajo upd updDirection

Desplazamiento vertical barra frente a barra de desplazamiento vertical

Barra de desplazamiento vertical frente a barra de desplazamiento vertical

Barra de desplazamiento vertical frente a barra de desplazamiento vertical

Barra de desplazamiento vertical frente a desplazamiento vertical barp> Barra de desplazamiento vertical vsb vsbRate

------------------------------------ ---- ---------------------------------------------- -

Prefijos recomendados de objetos de acceso a datos (DAO)

Los siguientes prefijos se utilizan para representar objetos de acceso a datos

Ejemplos de prefijos de objetos de base de datos

Contenedor con conReports

Base de datos db dbAccounts

DBEngine dbe dbeJet <

Documento doc docSalesReport

Fieldfld fldAddress

Grupo grp grpFinance

Índice ix idxAge

Parámetro prm prmJobCode

QueryDef qry qrySalesByRegion

Recordsetrec recForecast

Relación rel relEmployeeDept

TableDef tbd tbdCustomers

Usuario usr usrNew

Espacio de trabajo wsp wspMine

---------- -------- ------------------------------------------ -------- ------------

Las aplicaciones suelen utilizar muchos controles de menú y es útil desarrollar una convención de nomenclatura única para estos controles. Además de la etiqueta "mnu" en la parte superior, el prefijo del control del menú también debe expandirse: se agrega un prefijo adicional para cada nivel de anidamiento y el título del menú final se coloca al final de la cadena de nombre. La siguiente tabla enumera algunos ejemplos.

Prefijo de menú recomendado

Secuencia de títulos del menú Nombre del controlador de menú

Archivo Abrir mnuFileOpen

Archivo Enviar correo electrónico mnuFileSendEmail

Archivo Enviar Fax mnuFileSendFax

Formato de carácter mnuFormatCharacter

Contenido de ayuda mnuHelpContents

Cuando se utiliza esta convención de nomenclatura, en la ventana Propiedades de Visual Basic, todos los miembros de un grupo específico grupo de menús se enumeran uno tras otro. Además, los controles de menú tienen nombres que indican claramente el elemento del menú al que pertenecen.

Elija un prefijo para otros controles.

Los controles que no figuran en la lista anterior deben utilizar un prefijo único de dos o tres caracteres para mantener la coherencia. Utilice prefijos de más de tres caracteres sólo si se requiere una aclaración.

Convenciones de nomenclatura para constantes y variables

Además de los objetos, las constantes y variables también requieren convenciones de nomenclatura bien formateadas. Esta sección enumera las convenciones recomendadas para constantes y variables que admite Visual Basic. Esta sección también analiza las cuestiones relacionadas con la identificación de tipos y alcances de datos.

Las variables siempre deben definirse en el menor alcance posible. Las variables globales (públicas) pueden conducir a mecanismos de estado extremadamente complejos y hacer que la lógica de la aplicación sea muy difícil de entender. Las variables globales también dificultan la reutilización y el mantenimiento del código.

Las variables en Visual Basic pueden tener los siguientes alcances

El alcance es visible donde se declara

Un procedimiento, subprocedimiento o función a nivel de procedimiento es visible donde se declara Usar "Privado" en procedimientos

Usar "Privado" en la sección de declaración de formularios a nivel de módulo o módulos de código (.frm, .bas). bas) Cada procedimiento almacenado en un formulario o módulo de código

Global 'Público' (global) en la sección de declaraciones de un módulo de código (.bas) En todas partes de la aplicación

Público ' Public' (global) en la sección de declaraciones del módulo de código

Global

En una aplicación de Visual Basic, no existe otro método conveniente excepto en la forma Las variables globales se usan solo cuando los datos se comparten entre los usuarios. Cuando debas utilizar variables globales, declaralas en un solo módulo y agrúpalas por funcionalidad. Asigne al módulo un nombre significativo que indique lo que hace, como Public.bas.

Una mejor práctica de codificación es escribir código modular siempre que sea posible. Por ejemplo, si su aplicación muestra un cuadro de diálogo, coloque todos los controles y el código necesarios para completar las tareas del cuadro de diálogo en un formulario. Esto ayuda a organizar el código de su aplicación en componentes útiles y reduce la sobrecarga del tiempo de ejecución.

Con la excepción de las variables globales (que no deben pasarse), los procedimientos y funciones almacenados solo deben operar en los objetos que se les pasan. Las variables globales utilizadas dentro de un procedimiento almacenado deben identificarse en la sección de declaración al comienzo del procedimiento almacenado. Además, debe utilizar ByVal para pasar parámetros a subprocedimientos y procedimientos de función a menos que exista una clara necesidad de cambiar el valor de un parámetro pasado.

A medida que se expande la escala del proyecto, también aumenta la carga de trabajo de las variables de alcance. Colocar un prefijo de alcance de una sola letra antes del prefijo de tipo marca este crecimiento, pero la longitud del nombre de la variable no aumenta mucho.

Prefijo de alcance variable

Ejemplo de prefijo de alcance

Global g gstrUserName

Nivel de módulo m mblnCalcInProgress

Local a Procedimiento Ninguno dblVelocity

Una variable tiene alcance global si se declara Pública en un módulo estándar o de formularios. Una variable tiene alcance a nivel de módulo si se declara "privada" en un módulo estándar o en un módulo de formularios, respectivamente.

Nota: La coherencia es clave para utilizar esta técnica de manera efectiva; el verificador de sintaxis en Visual Basic no captura las variables a nivel de módulo que comienzan con "p".

Constante

El texto de un nombre constante está compuesto por mayúsculas y minúsculas, con la primera letra de cada palabra en mayúscula. Aunque las constantes estándar de Visual Basic no contienen información sobre el tipo de datos ni el rango, los prefijos como i, s, g y m ayudan a comprender el valor y el rango de la constante. Los nombres de constantes siguen las mismas reglas que las variables. Por ejemplo:

mintUserListMax 'Límite máximo de la lista de usuarios

' (valor entero, utilizado localmente por el módulo)

gstrNewLine 'Carácter de nueva línea

' (Cadena, utilizada globalmente por la aplicación)

Variables

Declarar todas las variables ahorrará tiempo de programación porque habrá menos errores causados ​​al escribir (por ejemplo, aUserNameTmp , sUserNameTmp o sUserNameTemp). En la pestaña Editor del cuadro de diálogo Opciones, seleccione la opción Requerir declaración de variable. La opción de declaración explícita requiere que todas las variables se declaren en el programa Visual Basic.

Las variables deben tener un prefijo para indicar su tipo de datos. Los prefijos se pueden ampliar para especificar el alcance de una variable, especialmente para programas grandes.

Utilice los siguientes prefijos para especificar el tipo de datos de la variable.

Tipo de datos variable

Ejemplo de prefijo de tipo de datos

Cadena str strFName

Entero int intCantidad

Long lng lngDistance

Single

Single (tipo de punto flotante de precisión simple) sng sngAverage

Doble (tipo de punto flotante de doble precisión double (tipo de punto flotante de doble precisión) dbl dblTolerance

Booleano (tipo booleano) bln blnFound

Byte (tipo de byte) byt bytRasterData

Fecha dte dteNow

Moneda cur curRevenue

p>

Objeto obj objCurrent

Tipo de variante) vnt vntCheckSum

Descripción de nombres de variables y procedimientos almacenados

El cuerpo de la variable o el nombre del procedimiento almacenado debe be Escribe una mezcla que sea lo suficientemente larga para describir su efecto. Además, los nombres de las funciones deben comenzar con un verbo, como InitNameArray o CloseDialog.

Para proyectos largos o de uso frecuente, se recomienda utilizar abreviaturas estándar para organizar razonablemente la longitud del nombre. En términos generales, los nombres de variables de más de 32 caracteres son difíciles de leer en una pantalla VGA.

Al utilizar abreviaturas, asegúrese de que sean coherentes en toda la aplicación.

Si usa Cnt por un momento y Count por otro en su proyecto, creará confusión innecesaria.

Tipos definidos por el usuario

En un proyecto grande con muchos tipos definidos por el usuario, a menudo es necesario darle a cada tipo su propio prefijo de tres caracteres. Si estos prefijos comienzan con "u", es fácil identificar rápidamente los tipos definidos por el usuario al trabajar con ellos. Por ejemplo, ucli se puede utilizar como prefijo para variables de tipo de cliente definidas por el usuario.

[Volver al índice]

4. En el caso de condiciones de selección simples, utilice la función IIf()

Código de Rosso:

Si nNum = 0 Entonces

sName = "sancy"

De lo contrario

sName = "Xu"

Finalizar si

Código simple:

sName=IIf(nNum=0, "sancy", "Xu")

5. Print no sólo logra el mismo efecto, sino que también se ignora cuando finalmente se compila el programa. MsgBox debe comentarse o eliminarse manualmente.

Normalmente:

MsgBox nName

debe ser:

Debug.Print nName

6. cambiando las propiedades de un objeto, intente usar With.....Fin con

Normalmente:

Form1.Height = 5000

Form1. 6000

Form1.Caption = "Esta es MiEtiqueta"

Debe ser:

Con Form1

.Height = 5000

.Width = 6000

.Caption = "Esta es MyLabel"

Finalizar con

La ejecución del programa con esta estructura es más eficiente, especialmente en declaraciones de bucle.

7. MsgBox debería intentar utilizar iconos de mensajes para que el programa esté más estandarizado.

Generalmente,

vbInformation se utiliza para solicitar mensajes de confirmación o de éxito de la operación.

p >

vbExclamation se usa para generar mensajes de advertencia

vbCritical se usa para generar mensajes de crisis

vbCritical se usa para generar mensajes de crisis críticos

vbQuestion. los mensajes se utilizan en la consulta rápida

[Índice de retorno]

8 Utilice enumeraciones tanto como sea posible

El formato de las enumeraciones es

[Público | Privado] Nombre de enumeración

nombre de miembro [= expresión constante]

nombre de miembro [= expresión constante]

....

End Enum

La declaración Enum contiene las siguientes partes:

Descripción de la parte

Pública Opcional. Indica que el tipo de enumeración es visible en todo el proyecto. El valor predeterminado para los tipos de enumeración es Público. Indica que el tipo Enum solo es visible en el módulo declarado.

nombre requerido. El nombre de este tipo de enumeración.

El nombre debe ser un identificador legal de Visual Basic utilizado para especificar el tipo al definir una variable o parámetro del tipo de enumeración.

el nombre del miembro es obligatorio. Un identificador legal de Visual Basic que especifica el nombre de los elementos componentes de este tipo de enumeración.

expresiónconstante opcional. El valor del elemento (de tipo Long). Pueden ser otros tipos de enumeración. Si no se especifica constantexpression, el valor asignado es 0 (si el elemento es el primer nombre de miembro) o 1 mayor que el valor del elemento anterior.

Descripción

Lo que llamamos variables de enumeración se refiere a variables definidas en el tipo Enum. Tanto las variables como los parámetros se pueden definir como tipos de enumeración. Los elementos de un tipo de enumeración se inicializan con el valor constante especificado en la declaración de enumeración. El valor asignado puede ser positivo o negativo y no se puede cambiar en tiempo de ejecución. Por ejemplo:

Enum SecurityLevel IllegalEntry = -1 SecurityLevel1 = 0 SecurityLevel2 = 1 End Enum

Las declaraciones de Enum solo pueden aparecer en el nivel del módulo. Una vez definido un tipo Enum, puede usarlo para definir variables, parámetros o procedimientos almacenados que devuelven ese tipo. No puede utilizar el nombre de un módulo para calificar un tipo de enumeración. Los tipos de enumeración pública en los módulos de clase no son miembros de la clase; simplemente se escriben en la biblioteca de tipos. Los tipos de enumeración definidos en los módulos estándar no se escriben en la biblioteca de tipos. No se puede definir un tipo de enumeración pública con el mismo nombre en un módulo estándar y en un módulo de clase porque comparten el mismo espacio de nombres. Si dos tipos de enumeración en bibliotecas de tipos diferentes tienen el mismo nombre pero miembros diferentes, entonces una referencia a la variable de tipo dependerá de qué biblioteca de tipos tiene la mayor prioridad de referencia.

No puedes utilizar tipos de enumeración como objetivos en bloques With.

Ejemplo de declaración Enum

El siguiente ejemplo demuestra el uso de la declaración Enum para definir una colección de constantes con nombre. En este ejemplo, puede seleccionar algunas constantes de color para diseñar un formulario de entrada de datos para una base de datos.

Colores de interfaz de enumeración pública

icMistyRose = amp;HE1E4FFamp;

icSlateGray = amp;H908070amp

icDodgerBlue = amp.HFF901Eamp; /p>

icDeepSkyBlue = HFFBF00amp;

icSpringGreen = H7FFF00amp;

icForestGreen = H228B22amp

icGoldenrod = H20A5DAamp; icFirebrick = amp; H2222B2amp;

End Enum

El beneficio es una programación más rápida