Red de conocimiento informático - Problemas con los teléfonos móviles - Código fuente de Vbaccess

Código fuente de Vbaccess

Acabo de terminar este artículo y te doy una respuesta ~~ Exclusivo, dame la puntuación ~~

1) Importancia del sistema

Con la creciente popularidad de las aplicaciones informáticas, las empresas e instituciones realizado La gestión de personal estandarizada y automatizada por computadora es imperativa. Este es un medio importante para mejorar el nivel de gestión científica y una forma confiable de mejorar la eficiencia del trabajo.

2) Características del sistema

1 realiza la gestión automática de la información del personal;

2. Proporciona varias funciones para consultar, modificar, eliminar e insertar información de talentos;

Proporciona varias funciones de estadísticas de información.

3) Entorno de diseño del sistema

1 Windows 2000 Server o Windows XP

2 Sistema de gestión de bases de datos SQL Server 2000

3; VB 6.0.

2. Análisis de requisitos del sistema

1) Objetivos del diseño del sistema

1 Realizar la gestión automatizada de la información en el proceso de gestión de personal.

2. Puede modificar, eliminar e insertar información diversa.

3. Realizar la consulta y estadística de diversos tipos de información.

4 Estadísticas de información de asistencia de los empleados por año y mes.

5 Con base en las estadísticas de un determinado año, un determinado mes y un determinado día, consulta el número de personas que llegan tarde y salen temprano en un determinado departamento.

6. Cuente los días extras de todos mensualmente.

7. Estadísticas sobre el número de personas trasladadas de entrada y salida por año.

2) Análisis de requisitos del sistema

1. Análisis de requisitos de información

A través del análisis del sistema de información del personal, este sistema necesita contener la siguiente información (datos). diccionario):

1) Información básica de expedientes de personal:

No., nombre, sexo, fecha de nacimiento, años de servicio, número de teléfono, dirección, correo electrónico, educación, especialidad , tiempo de empleo (requisitos numéricos: longitud 6 bits).

2) Información de transferencia de personal:

Departamento original, nuevo departamento, puesto original, nuevo puesto, hora de salida, hora de entrada.

3) Información de asistencia del personal:

Hora de inicio y salida del trabajo, hora de retraso, hora de salida anticipada, número de días de licencia, número de días de horas extras y fecha de horas extras.

4) Información de administración de usuarios del sistema:

Número de cuenta de usuario, contraseña (compuesta por 6 dígitos), registre la información del último inicio de sesión del usuario: año, mes y día.

2. Análisis de requisitos funcionales

1) Ingreso, actualización, eliminación y consulta de información básica de expedientes de personal

2) Ingreso y actualización de traslados de personal; información, eliminar y consultar;

3) Ingresar, actualizar, eliminar y consultar información de asistencia del personal;

3. Diseño de la estructura conceptual

El diagrama E-R del El sistema es como se muestra en la figura Como se muestra en 1.1:

1) Diseño de base de datos

1 Diseño de estructura lógica

Información básica del personal (número, nombre, fecha de nacimiento, experiencia laboral, número de teléfono, dirección de correo electrónico, calificaciones académicas, fecha de incorporación);

Información de transferencia de personal (número, departamento original, nuevo departamento, puesto original, nuevo puesto, tiempo de transferencia, tiempo de transferencia );

Información de asistencia del personal (número de personas, tiempo de desplazamiento, llegada tardía, salida anticipada, número de días de vacaciones, número de días de horas extras, fecha de horas extras).

2 La estructura de cada tabla de datos

Según el análisis de demanda del modelo E-R entre entidades, este sistema requiere cuatro tablas de datos para almacenar información básica de personal, información de transferencias, información de asistencia. y sistema respectivamente, información de la cuenta del administrador, de la siguiente manera:

Tabla de información básica del personal

Instrucciones sobre si la longitud del tipo de datos del nombre del campo está vacía.

Bh char 10 no es un número nulo

Nombre varchar 8 no es un nombre nulo

Género varChar 3 no es un género nulo

Gznx varchar 10 Año laboral nulo

Fecha de nacimiento hora 10 La fecha de nacimiento es nula

correo electrónico Varchar 20 Correo electrónico nulo

Dh Varchar 20 Teléfono nulo

Xl Varchar 10 educación nula

Jdwsj Datetime 10 null a unidad de tiempo

Tabla de transferencia de personal

Explicación de si la longitud del tipo de datos del campo el nombre es nulo.

Ybm varchar 12 departamento original no está vacío

Xbm varchar 12 nuevo departamento no está vacío

Yzw varChar 12 no está vacía posición original

Xzw varchar 12 vacío nuevo trabajo

Dcsj fecha hora 10 tiempo de salida del aire acondicionado

Drsj fecha hora 10 tiempo de entrada del aire acondicionado

Horario de personal

Explicación de si la longitud del tipo de datos del nombre del campo está vacía.

Sxb varchar 10 tiempo de viaje no nulo

Cd varchar 5 tiempo de retraso no nulo

Zt varChar 5 no nulo tiempo de salida anticipada

Qj varchar 5 días de vacaciones nulos

Jbts fecha hora 5 días de horas extra nulas

Jbrq fecha hora 10 fecha de horas extra nulas

Tabla de administradores

Explicación de si la longitud del tipo de datos del nombre del campo está vacía.

Nombre char 20 Nombre de usuario no nulo

Contraseña carácter 8 no es nulo Contraseña

Código del módulo de información básica del personal

Opción explícita

Dim mblchange es un valor booleano

TxtSQL público en forma de cadena

Texto de mensaje público en forma de cadena

Dim mrc es ADODB. Conjunto de registros

Sub privado cmdcancle_Click()

Eliminarme

Conector final

Sub privado cmdOK_Click()

Dim intCount como entero

Dim txtSQL como cadena

Dim MsgString como cadena

Dim sMeg como cadena

La anotación I es un número entero

Para intCount = 0 a 1

si Trim(text 1(int count)&" ")= ""Entonces

Seleccione mayúsculas y minúsculas

Caso 0

SMeg = "Número"

Caso 1

SMeg = "Nombre"

Finalizar selección

sMeg = sMeg & amp "no puede ser nulo"

Msgbox smeg, vbokonly+vbexclusion, "advertencia"

Text1(intCount).

SetFocus

Salir del conector

Finalizar si...

Siguiente intCount

if Trim(text 1(3)& amp; " ")= " "Entonces

MsgBox "La fecha de nacimiento no puede estar vacía", ejemplo vbOKOnly+VB, "Advertencia"

Terminará si...

if Trim(text 1(3)&" ")& lt& gt""Entonces

Si no es IsDate(Text1(3)), entonces

MsgBox " La fecha de nacimiento debe Sí (aaaa-mm-dd) ", vbOKOnly+vbaclouse, "Advertencia"

Texto1(3). SetFocus

Conector de salida

Otro

texto 1(3)= Formato(texto 1(3), "aaaa-mm-dd")

Terminará si...

Terminará si...

if Trim(text 1(2)& amp; " ") = " "Entonces

MsgBox "La edad no puede ser nula", vbOKOnly+vbaclouse, "Advertencia"

Salir del conector

Terminará si...

Si gintMode = 1, entonces

txt SQL = " select * from dangan donde ygid = ' " & trim(text 1(0))&"

Establecer mrc = ExecuteSQL( txtSQL , msgtext)

Si mrc.eof = false entonces

MsgBox "Registro duplicado", vbOKOnly+vbaclouse, "Advertencia"

SetFocus1(0).

Fin si...

mrc.Close

txt SQL = " eliminar * de dangan donde ygid = ' " & trim(texto 1( 0) )&"

Establecer mrc = ExecuteSQL(txtSQL, msgtext)

txtSQL = "select * from dangan "

Establecer mrc = ExecuteSQL( txtSQL, msgtext )

mrc. Añadir nuevo contenido

Para intCount = 0 a 1

mrc. campos(int count) = Trim(text 1(int count))

Siguiente intCount

Para intCount = 2 a 5

mrc. campos(int count) = Trim(text 1(int count))

Siguiente intCount

Para intCount = 6 a 10

mrc. campos(int count) = Trim(text 1(int count))

Siguiente intCount

mrc. Campo(11) = Recortar(combo 1. Texto)

mrc. Actualizar

Si gintMode = 1, entonces

MsgBox "Registro agregado exitosamente", vbOKOnly, "Preguntar"

Para i = 0 a 10

Texto1(i). Text = " "

Siguiente yo

frmyuangong. Mostrar

frmyuangong.

zord0

frmmanrecord. Título del programa

frmmanrecord. Mostrar datos

frmmanrecord. Zod 1

Terminará si...

Entonces ElseIf gintMode = 2

txt SQL = " select * from dangan donde ygid = ' " & amp ; Recortar(Texto1(0)). text) & amp"

Establecer mrc = ExecuteSQL(txtSQL, msgtext)

Para intCount = 0 a 10

mrc.fields(int count) = Trim (texto 1(int count))

siguiente intCount

mrc.field(11) = Trim(combo 1. text)

mrc.

MsgBox "Modificación exitosa", vbOKOnly, "Preguntar"

Eliminarme

frmmanrecord Mostrar título

frmmanrecord Mostrar datos

frmmanrecord.zord0

Terminará si

gintMode = 0

Finalizar conector

Private Subform_Load()

Dim msgtext como cadena

Dim intCount como entero

Usando Combo1

AddItem "Male"

AddItem "Female"

Termina con

Si gintMode = 1, entonces

Caption = i. "Agregar"

Entonces ElseIf gintMode = 2

p>

Establezca mrc = ExecuteSQL(txtSQL, msgtext)

si mrc.EOF = false entonces

use mrc

para intCount = 0 a 10

Text1(intCount) = . >

Siguiente intCount

Si no es IsNull(!) entonces

Combo1 =!

Terminará si...

mrc.Close

i.Caption = "Modificar"

Termina si...

Fin if...

mblchange = False

Conector final

Opción explícita

Cadena pública de sQSql

Mrc público como ADODB.

TxtSQL público como cadena

Texto de mensaje público como cadena

Subcomprobación privada 1_Click (índice como número entero)

Si índice = 0, entonces

Texto1(índice). SetFocus

Terminará si...

Si índice = 1, entonces

Texto1(índice). SetFocus

Otro

Texto1 (índice). SetFocus

Terminará si...

Finalizar conector

Subcomando privado cancel_click()

Eliminarme

p>

Conector final

Sub cmdOK_Click() privado

Si marca 1(0).

Valor = vbChecked Entonces

sQSql = " ygname = ' " & amptrim(text 1(0)& amp;"& amp"

Terminará si...

Si Check1(1). Valor = vbChecked Entonces

Si trim(sQSql & amp" ") = " "Entonces

sQSql = " ygid = ' " & ampTrim. (Text1 (1)"& amp"

Otro

sQSql = sQSql & amp and ygid = ' " & ampTrim(Text1(1)"& amp"

Terminará si...

Terminará si...

Si Valor = vbChecked Entonces

Si trim(sQSql & amp" " ). = " "Entonces

sQSql = " ygdept = ' " & amptrim(texto 1(2)& amp;"& amp"

Otro

sQSql = sQSql & amp y ygdept = ' " &trim(text 1(2)& amp;"& amp"

Terminará si...

Terminará si. ..

Si trim(sQSql & amp" ") = " "entonces

frmmanrecord =" select * from dangan "

flagEdit = True<. /p>

frmmanrecord.Título del programa

frmmanrecord. Mostrar datos

Otros

frmmanrecord = " select * from dangan where " & amp; SQL SQL

flagEdit = True

frmmanrecord.Título del programa

frmmanrecord.Show data

frmmanrecord.Show

Finalizar si...

Ocultar

Conector final

Subform_Load privado()

Etiquetar I como un número entero

Para i = 0 a 2

Texto1(i) = " "

Luego

finalizar Conector

Módulo de asistencia de personal código

Opción explícita

Dim mblchange es un valor booleano

Dim mrc es ADODB. Conjunto de registros

TxtSQL público como cadena

Sub cboItem_Click privado (indexado como entero)

Dim msgtext como cadena

txtSQL = "select ygid , yg nombre de dangan donde yg dept = ' " & Trim(DataCombo1)"

Establecer mrc = ExecuteSQL(txtSQL, msgtext)

MoveFirst

mrc.Move cboItem(1).

Índice de lista

txtid = Trim(mrc!ygid)

Conector final

privado Sub cboItem _ KeyDown(El índice es un número entero, KeyCode es un número entero, Shift es un número entero)

Ingrese la clave de la etiqueta

Conector final

Private Sub cboMonth_Click()

Atenuar dateTemp como fecha

dateTemp = DateAdd("d ",-1,DateAdd("m ",1,DateSerial(CInt(cboYear),CInt(cboMonth),1)))

txtItem(0) = Día( dateTemp)

Conector final

Private Sub cboYear_Click()

Atenuar dateTemp como fecha

si se recorta (CBO mes y amp ;" ")& lt& gt""Entonces

dateTemp = DateAdd("d ",-1,DateAdd("m ",1,DateSerial(CInt(cboYear),CInt(cboMonth),1) ))

txtItem(0) = Día(dateTemp)

Terminará si...

Finalizar conector

Sub privado cmdExit_Click()

Si mblchange y gintMode & lt& gt3 y cmdSave. Luego habilite

Si MsgBox("¿Guardar cambios en el registro actual?", vbOK cancelar+signo de exclamación VB, "advertencia") = vbOK Entonces

Llame a cmdSave_Click

Se acabaría si...

Se acabaría si...

Eliminarme

Conector final

Privado Sub cmdSave_Click()

Atenuar intCount como un número entero

Atenuar sMeg como una cadena

Atenuar rectemp como un conjunto de registros

Anotar sSql como una cadena

Atenuar el texto del mensaje como cadena

Para intCount = 0 a 3

Si Trim(txtItem(intCount) y amp" ") = " "Entonces

Seleccione caso intCount

Caso 0

SMeg = "Días de este mes"

Caso 2

SMeg = "Días de asistencia"

Caso 3

SMeg = "Asistencia"

Finalizar selección

Si intCount & lt& gt entonces 1

sMeg = sMeg & amp "¡No puede ser nulo!"

Msgbox smeg, vbokonly+vbexclusion, "Advertencia"

txtItem(intCount). SetFocus

Salir del conector

Finalizar si...

Finalizar si...

Siguiente intCount

Si gintMode = 1, entonces

txt SQL = " select * from check in donde kqid = ' " & trim(txtid) & kqdate = ' " & format(cboYear.text &-“&cboMonth.

text&-01","yyyy-mm-DD")&"

Establecer mrc = ExecuteSQL(txtSQL, msgtext)

Si mrc. EOF = False then

MsgBox "¡El registro de asistencia del empleado para este mes ya existe!", vbOKOnly+vbaclouse, "Advertencia"

cboMonth. SetFocus

Conector de salida

Termina si...

mrc. Cerrar

txtSQL = " eliminar del registro donde kqid = ' " & trim(txtid) & kqdate = ' " & format(cboYear & - "& cboMonth & -01 "," yyyy-mm-DD ")&"

Establecer mrc = ExecuteSQL(txtSQL, msgtext)

txtSQL = "select * from checkin"

Establecer mrc = ExecuteSQL(txtSQL, msgtext)

mrc. Añadir nuevo

mrc. Campo(0) = Recortar(txtid)

mrc. campos(1)= Trim(cboItem(1))

mrc. campos(2) = Formato(cboAño & "-" & cboMes & "-01", "aaaa-mm-dd")

Para intCount = 0 a 15

mrc. campos(int count+3) = Trim(tx titem(int count). text)

Siguiente intCount

Para intCount = 16 a 17

mrc . campos(int count+3)= Trim(tx titem(int count). text)

Siguiente intCount

mrc. Actualizar

MsgBox "¡Registro agregado exitosamente!", vbOKOnly+vbaclouse, "Advertencia"

Para intCount = 0 a 17

txtItem(intCount) = " "

Siguiente intCount

mblchange = False

Entonces ElseIf gintMode = 2

txtSQL = "seleccione kqid, kqname, kqdays, kqrday, kqtday, kqwork, kqabsent, kqrest, kqleave, kqlate, kqearly, kqforget, kqover1, kqvoer2, kqfill, kqgo, kqpay, kqdeduct, kqother, kqre marca desde el registro donde kqid = ' " & trim(txtid)& ;"

Establecer mrc = ExecuteSQL(txtSQL, msgtext)

mrc.fields(0) = Trim(txtid)

mrc.fields(1)= Trim(cboItem) (1))

Para intCount = 0 a 15

mrc.fields(int count+2) = Trim(tx titem(int count).

Texto)

Siguiente intCount

Para intCount = 16 a 17

mrc. campos(int count+2)= Trim(tx titem(int count). text)

Siguiente intCount

mrc. Actualizar

MsgBox "¡Registro modificado correctamente!", vbOKOnly, "Preguntar"

mrc. Cerrar

Eliminarme

frmCheck. Título del programa

frmCheck. Mostrar datos

frmCheck. Zod 0

Terminará si...

gintMode = 0

Finalizar conjunto

Combo privado de subdatos 1 _ Click(área como un número entero)

Anotar sSql como una cadena

Atenuar el texto del mensaje como una cadena

txtSQL = "seleccione ygid, nombre de yg de dangan donde yg dept = ' "& Trim(DataCombo1)"

Establecer mrc = ExecuteSQL(txtSQL, msgtext)

cboItem(1) clear

Si no es mrc, entonces EOF

. p>

use cboItem(1)

en lugar de mrc. fin de archivo

elemento adicional trim(mrc!ygname)

mrc. .Siguiente

Anillo

.ListIndex = 0

termina en...

cmdSave

Otro

MsgBox "¡Primero cree un perfil de empleado! ", vbOKOnly+vbaclouse, "advertencia"

cmdSave.enabled=false

Conector de salida

Terminará si...

end Connector

Private subform_Load()

Atenuar intCount como entero

Atenuar dateTemp como fecha

Atenuar msgtext como cadena

Adodc1.Visible=False

cboYear(ahora)

AddItemYear(ahora)-1

cboYear ListIndex = 0

Para intCount = 1 a 12

cboMonth. AddItem intCount

Siguiente intCount

cboMonth( ahora)

Si gintMode = 1, luego

i. Caption = "Agregar"

Inicializar el nombre del departamento

txtSQL = "Seleccionar un ygdept diferente de dangan "

Establecer mrc = ExecuteSQL(txtSQL, msgtext)

Si mrc entonces EOF

MsgBox " ¡Primero registre los archivos de los empleados! ", vbOKOnly+vbaclouse, "advertencia"

cmdSave.enabled=false

Conector de salida

Terminará si...

Inicialización El número de días de este mes.

dateTemp = DateAdd("d ",-1,DateAdd("m ",1,DateSerial(CInt(cboYear),CInt(cboMonth),1)))

txtItem (0) = Día(fechaTemp)

mrc. Cerrar

Entonces ElseIf gintMode = 2

Establecer mrc = ExecuteSQL(txtSQL, msgtext)

Si mrc. EOF = false entonces

Utilice mrc

cboItem(1). Agregar elemento. Campo(1)

cboItem(1). ListIndex = 0

Para intCount = 2 a 19

Si no es IsNull(.Fields(intCount)) entonces

txtItem(intCount - 2) = . Campo (entero)

Fin si...

Siguiente intCount

txtid =. Campo(0)

Termina con...

Termina si...

mrc. Ciérrame

. Título=yo. Títulos y títulos. "Modificar"

Terminará si...

mblchange = False

Finalizar conector

Código del módulo de transferencia de personal

Opción explícita

Dim mblchange es booleano

TxtSQL público en forma de cadena

Texto de mensaje público en forma de cadena

Dim mrc para ADOB. conjunto de registros

Atenuar mis marcadores a variante

Subcomando privado cancel_click()

Desmontarme

Finalizar conector

Sub privado cmdchange_Click()

cmdchange. enable=false

Comando 1. enable=false

cmddelete. Habilitar = Falso

gintMode = 2

Conector final

Sub privado cmddelete_Click()

Atenuar como cadena

mimarcador = mrc. Marcador

St = MsgBox("¿Eliminar registro actual?", vbOKCancel, "Preguntar")

Si st = vbOK, entonces

mrc. Siguiente

Si mrc. Luego EOF

mrc. MoveFirst

mimarcador = mrc. Marcadores

mrc. MoverÚltimo

mrc. eliminar

mimarcador = mrc. Marcador

Datos de vista de llamada

Otro

mimarcador = mrc. Marcadores

mrc. Mover anterior

mrc. Eliminar

mrc. Marcadores = mis favoritos

Datos de visualización de llamadas

Terminará si...

Otro

mrc.

Marcadores = mis favoritos

Datos de visualización de llamadas

Terminará si...

Finalizar conector

Sub cmdOK_Click() privado p>

Atenuar intCount como entero

Atenuar txtSQL como cadena

Atenuar MsgString como cadena

Si Texto(0) = ", entonces

MsgBox "¡El número no puede estar vacío! ", vbOKOnly+vbaclouse, "Advertencia"

Text(0).SetFocus

Terminará si...

Si Text(1) = ", luego

MsgBox "¡El evento no puede estar vacío!, vbOKOnly+vbaclouse, "Advertencia"

Texto (1). SetFocus

Terminará si...

Si gintMode = 1, entonces

txtSQL = " select * from renshi 1 donde id = ' " & trim(Text(0))&"

Establecer mrc = ExecuteSQL(txtSQL, msgtext)

Si mrc. EOF = False then

MsgBox "El registro con este número ya existe, ¡vuelve a ingresar!", vbOKOnly+vbaclouse, "Advertencia"

Texto (0). SetFocus

Conector de salida

Termina si...

mrc. Cerrar

txtSQL = " eliminar * de renshi 1 donde id = ' " & trim(Text(0))&"

Establecer mrc = ExecuteSQL(txtSQL, msgtext )

txt SQL = " select * from renshi 1 "

Establecer mrc = ExecuteSQL(txtSQL, msgtext)

Agregar nuevo contenido

Para intCount = 0 a 2

mrc.fields(int count) = Trim(Text(int count))

Siguiente intCount

mrc .Update

MsgBox "¡Registro agregado exitosamente! ", vbOKOnly, "mensaje"

frmrenshi.zord1

frmrenshi.display

command1.enable=true

cmdchange .enabled= Verdadero

cmddelete.enabled=Verdadero

primero habilitado=Verdadero

siguiente habilitado=Verdadero

Finalmente habilitado=Verdadero

p>

Finalizar si

Si gintMode = 2, entonces

txt SQL = " select * from renshi 1 "

Establecer mrc = ExecuteSQL(txtSQL , msgtext)

Para intCount = 0 a 2

mrc = .Text(intCount). Texto

Siguiente intCount

mrc. Actualizar

MsgBox "¡Registro modificado exitosamente! ", vbOKOnly, "mensaje"

cmdchange. enable=True

Comando 1. enable=True

cmddelete.

enable = true

Finalizar si...

gintMode = 0

Finalizar conector

Subcomando privado 1_Click()

Etiquete I como un número entero

Para i = 0 a 2

Texto (1). text = " "

Siguiente I

Comando 1. habilitado=falso

cmdchange. enable=false

cmddelete. enable=false

Primero. enable=false

Anterior. habilitado=falso

siguiente1. enable=false

Finalmente. enable = false

gintMode = 1

End-joiner

Private Sub first_Click()

mrc. MoveFirst

Datos de vista de llamada

Conector final

Subform_Load privado()

Atenuar txtSQL como cadena

Atenuar msgtext como cadena

Marcar I como un número entero

txt SQL = " select * from renshi 1 "

Establecer mrc = ExecuteSQL( txtSQL, msgtext)

Si mrc. Entonces EOF = True

MsgBox "Sin registro, ¡agregue!", vbOKOnly, "Preguntar"

Otro

mrc. MoveFirst

Datos de visualización de llamadas

mybookmark = mrc. Marcador

mblchange = True

Terminará si...

mblchange = True

Finalizar conector

Sub privado next1_Click()

mrc. Siguiente

Si mrc. Luego EOF

mrc. MoveFirst

Terminará si...

Llamar a los datos de visualización

Finalizar conector

Sub privado anterior_Click()

mrc. pasar al anterior

si mrc. Entonces BOF

mrc. MoveLast

Finalizará si...

Llamar datos de vista

Finalizar conector

Datos de subvista pública()

Atenuar intCount como entero

Para intCount = 0 a 2

Texto(intCount) = mrc. Campo (entero)

Siguiente intCount

Conector final