Sunteți pe pagina 1din 10

Ocultar ventana de access:

Option Compare Database Global Const SW_HIDE = 0 Global Const SW_SHOWMINIMIZED = 2 Global Const SW_SHOWMAXIMIZED = 3 Private Declare Function apiShowWindow Lib "user32" _ Alias "ShowWindow" (ByVal hwnd As Long, _ ByVal nCmdShow As Long) As Long

Function fSetAccessWindow(nCmdShow As Long) Dim loX As Long Dim loForm As Form loX = apiShowWindow(hWndAccessApp, nCmdShow) End Function Y en el evento 'al Abrir' de tu formulario de inicio, llama a la funcion con el siguiente codigo: fSetAccessWindow (0) Esto si lo que quieres es ocultar la ventana de Access, o bien; fSetAccessWindow (2), para minimizarla tan solo, o bien; fSetAccessWindow (3), para maximilzarla. Ahora bien, algo importante: Todos los formularios de tu bd han de ser modales y emergentes para que esto te funcione correctamente. No olvide esto, es importante. Saludos

Para no mostrar mensaje de eliminacin de un registro colocar el cdigo: DoCmd.SetWarnings False

Para evitar que un formulario pase al siguiente o anterior registro pulsando teclas de desplazamamiento hay que entrar a las propiedades del formulario otras, y en ciclo colocar registro activo Pasar nmeros a letras:

Estuve diseando una base de datos que me haban solicitado en mi trabajo y como no soy un programador experto ni nada parecido, me top con un problemita... Cmo pasar en un formulario un valor numrico de un campo a letras en otro?? Y buscando en internet encontr la solucin a medias.... ya que en el cdigo que mostraban no aparecian las palabras "PESOS", "CENTAVO" o "CENTAVOS" y en algunos valores no se ejecutaba. As que estudiando el cdigo y le hice algunas correcciones y aqu se los dejo por si alguien se encuentra en el mismo problema que yo...

Lo primero que hay que hacer es considerar los nombres de los campos donde van los nmeros y donde van las letras, en este caso se llaman Numero y Texto respectivamente. Luego en la vista diseo del formulario

(Algo asi....)

van a las propiedades del campo Numero y en procedimiento del evento "al perder el enfoque" le dan click a "generar cdigo" (Algo as...)

y escriben lo siguiente:

Dim dmil, mil, cen, dec, un, udec, ucen As Integer Dim total As Double Texto.value = "" dmil = 0 mil = 0 cen = 0

dec = 0 un = 0 udec = 0 ucen = 0 total = Numero.value Do Until total < 10000 dmil = dmil + 1 total = total - 10000 Loop Do Until total < 1000 mil = mil + 1 total = total - 1000 Loop Do Until total < 100 cen = cen + 1 total = total - 100 Loop Do Until total < 10 dec = dec + 1 total = total - 10 Loop Do Until total < 1 un = un + 1 total = total - 1 Loop Do Until total < 0.1 udec = udec + 1 total = total - 0.1 Loop Do Until total < 0.009 ucen = ucen + 1 total = total - 0.01 Loop Texto = " PESOS " If dmil > 0 Then total = dmil * 10 + mil nombredecena (total) If mil = 1 Then Texto = Left(Texto, Len(Texto) - 1) End If

Else If mil > 1 Then nombreunidad (mil) End If End If If mil > 0 Or dmil > 0 Then Texto = Texto & " MIL" End If If cen > 1 Then If cen = 5 Then Texto = Texto & " QUINIENTOS" Else Texto = Texto & " " If cen = 7 Or cen = 9 Then nombreunidad (cen * 100) Else nombreunidad (cen) End If Texto = Texto & "CIENTOS" End If Else If cen = 1 Then If dec > 0 Or un > 0 Then Texto = Texto & " CIENTO" Else Texto = Texto & " CIEN" End If End If End If If dec > 0 Then total = dec * 10 + un nombredecena (total) Else If un > 0 Then Texto = Texto & " " nombreunidad (un) End If End If If udec > 0 Or ucen > 0 Then Texto = Texto & " CON "

If udec > 0 Then total = udec * 10 + ucen nombredecena (total) Else If ucen > 0 Then nombreunidad (ucen) End If End If End If If udec = 0 Then If ucen > 0 Then If ucen = 1 Then Texto = Texto & " CENTAVO" Else Texto = Texto & " CENTAVOS" End If End If Else Texto = Texto & " CENTAVOS"

A continuacin van arriba de todo esto, all en Visual Basic y debajo de "Option Compare Database", escriben estas funciones:

Sub nombreunidad(Num As Integer) Select Case Num Case 1 Texto = Texto & "UNO" Case 2 Texto = Texto & "DOS" Case 3 Texto = Texto & "TRES" Case 4 Texto = Texto & "CUATRO" Case 5 Texto = Texto & "CINCO"

Case 6 Texto = Texto & "SEIS" Case 7 Texto = Texto & "SIETE" Case 8 Texto = Texto & "OCHO" Case 9 Texto = Texto & "NUEVE" Case 700 Texto = Texto & "SETE" Case 900 Texto = Texto & "NOVE" End Select End Sub Sub nombredecena(Num As Integer) Dim dec, un dec = 0 un = 0 Do Until Num < 10 dec = dec + 1 Num = Num - 10 Loop Do Until Num < 1 un = un + 1 Num = Num - 1 Loop Select Case dec Case 1 Select Case un Case 0 Texto = Texto & " DIEZ" Case 1 Texto = Texto & " ONCE" Case 2 Texto = Texto & " DOCE" Case 3 Texto = Texto & " TRECE" Case 4 Texto = Texto & " CATORCE" Case 5

Texto = Texto & " QUINCE" Case 6 Texto = Texto & " DIECISEIS" Case 7 Texto = Texto & " DIECISIETE" Case 8 Texto = Texto & " DIECIOCHO" Case 9 Texto = Texto & " DIECINUEVE" End Select Case 2 Texto = Texto & " VEINT" If un = 0 Then Texto = Texto & "E" Else Texto = Texto & "I" End If Case 3 Texto = Texto & " TREINTA" Case 4 Texto = Texto & " CUARENTA" Case 5 Texto = Texto & " CINCUENTA" Case 6 Texto = Texto & " SESENTA" Case 7 Texto = Texto & " SETENTA" Case 8 Texto = Texto & " OCHENTA" Case 9 Texto = Texto & " NOVENTA" End Select If dec > 2 And un > 0 Then Texto = Texto & " Y " End If If dec > 1 And un > 0 Then nombreunidad (un) End If End Sub

Obligar a escribir solo nmeros


Sub Text1_Keypress(KeyAscii As Integer) If KeyAscii <> Asc("9") Then 'KeyAscii = 8 es el retroceso o BackSpace If KeyAscii <> 8 Then KeyAscii = 0 End If End If End Sub Nuevo: Private Sub Text1_Keypress(KeyAscii As Integer) If Not IsNumeric(Chr$(KeyAscii)) And KeyAscii <> 8 Then KeyAscii = 0 End Sub

O tambien: Private Sub Nit_KeyPress(KeyAscii As Integer) If ((KeyAscii < 48 Or KeyAscii > 57) And (KeyAscii < 44 Or KeyAscii > 44)) Then If (KeyAscii <> 8) Then KeyAscii = 0 End If End Sub

Pasar a mayuscula: Private Sub Domicilio_KeyPress(KeyAscii As Integer) KeyAscii = Asc(UCase(Chr(KeyAscii))) End Sub Salto de linea

mensaje& vbCrLf & mensaje

S-ar putea să vă placă și