Archivo

Archivo para Abril 2009

Tabular en un cuadro de texto

El siguiente ejemplo muestra como, de una forma sencilla, realizar tabulaciones en un cuadro de texto. Para ello es utiliza una función que hace que la tecla TAB, sobre un determinado control, actúe de una forma particular.

Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
Dim CursorPosition As Integer
Dim NumberOfCrLfsInSelected As Integer
Dim FirstHalf As String
Dim SecondHalf As String
If KeyCode = vbKeyTab And Me.ActiveControl.Name = "MyTextField" Then
Me.Painting = False
CursorPosition = Me.MyTextField.SelStart
FirstHalf = Left(Me.MyTextField.Text, CursorPosition)
SecondHalf = Mid(Me.MyTextField.Text, CursorPosition + 1)
Me.MyTextField = FirstHalf & "    " & SecondHalf
Me.MyTextField.SelStart = CursorPosition + 4
KeyCode = 0
Me.Painting = True
End If
End Sub
Fuente: Walter Niesz

Cálculo de la fecha de Semana Santa

La llamada a la función que calcula la fecha del Domingo de Resurrección se realiza de la siguiente forma:

Private Sub XecSS()
Dim intAnio As Integer
intAnio = InputBox("¿ Qué año ?")
MsgBox "Domingo de resureccion es:  " & funSemanaSanta(intAnio), vbInformation
End Sub

El año debe estar comprendido entre 1583 (inicio del calendario Gregoriano) y 2299. La función que nos devuelve la fecha buscada es la siguiente:

Public Function funSemanaSanta(ByVal Pon_Anio As Integer) As String
Dim bytA As Byte
Dim bytB As Byte
Dim bytC As Byte
Dim bytD As Byte
Dim bytN As Byte
Dim bytM As Byte
Dim bytX As Byte
Dim bytY As Byte
If Pon_Anio >= 1583 And Pon_Anio < = 1699 Then
bytX = 22
bytY = 2
ElseIf Pon_Anio >= 1700 And Pon_Anio < = 1799 Then
bytX = 23
bytY = 3
ElseIf Pon_Anio >= 1800 And Pon_Anio < = 1899 Then
bytX = 23
bytY = 4
ElseIf Pon_Anio >= 1900 And Pon_Anio < = 2099 Then
bytX = 24
bytY = 5
ElseIf Pon_Anio >= 2100 And Pon_Anio < = 2199 Then
bytX = 24
bytY = 6
ElseIf Pon_Anio >= 2200 And Pon_Anio < = 2299 Then
bytX = 25
bytY = 0
Else
MsgBox "Error", vbCritical
Exit Function
End If
bytA = Pon_Anio Mod 19
bytB = Pon_Anio Mod 4
bytC = Pon_Anio Mod 7
bytD = ((19 * bytA) + bytX) Mod 30
bytN = ((2 * bytB) + (4 * bytC) + (6 * bytD) + bytY) Mod 7
bytM = bytD + bytN
If bytM < 10 Then
Rem marzo
funSemanaSanta = bytM + 22 & " Marzo"
Else
Rem abril
If bytM - 9 = 26 Then
funSemanaSanta = "19 Abril"
ElseIf bytD = 28 And bytN = 6 And bytA > 10 Then
funSemanaSanta = "18 Abril"
Else
funSemanaSanta = bytD + bytN - 9 & " Abril"
End If
End If
End Function
Fuente: javier.mil
Categorías:Microsoft Access Etiquetas:, , ,