Archivo

Archivo para Julio 2008

Saber si la base de datos es una réplica

Con el siguiente código se averigua si la base de datos que se le pasa a la función es una réplica.

Function IsDatabaseReplica() As Boolean
' Parámetros: ninguno
'Devuelve verdadero si la base de datos es una réplica, en caso contrario devuelve falso
On Error Resume Next
If CurrentDb.Properties("Replicable") = "T" Then
If Err = 3270 Then
' La base de datos no es una réplica
IsDatabaseReplica = False
Else
'La base de datos es una réplica
IsDatabaseReplica = True
End If
End If
End Function
Fuente: Utter access
Categorías:Microsoft Access Etiquetas:,

Jugando con fechas…

La siguiente función devuelve de fecha de inicio de una semana, pasándole el número de la semana y el año.

Public Function fStartDateFromWeekNum(intWeekNumber As Integer, int4DigitYear As Integer) As Date
Dim DayOne As Date
Dim i As Integer
For i = 1 To 7
If DatePart("ww", DateSerial(int4DigitYear, 1, i), , vbFirstFullWeek) = 1 Then
DayOne = DateSerial(int4DigitYear, 1, i)
Exit For
End If
Next i
fStartDateFromWeekNum = DateAdd("ww", intWeekNumber - 1, DayOne)
End Function

Esta otra función determina el último viernes del mes:

Public Function fGetLastFridayOfMonth(dtValue As Variant) As Variant
Dim dtTmpDate As Date
Dim intDaysInMonth As Integer
Dim i As Integer
If Not IsDate(dtValue) Then Exit Function
dtTmpDate = DateSerial(Year(dtValue), Month(dtValue) + 1, 0)
intDaysInMonth = DatePart("d", DateSerial(Year(dtValue), Month(dtValue) + 1, 0))
For i = intDaysInMonth To 1 Step -1
If WeekDay(dtTmpDate) = vbFriday Then
fGetLastFridayOfMonth = dtTmpDate
Exit For
End If
dtTmpDate = DateAdd("d", -1, dtTmpDate)
Next i
End Function
Fuente: Utter Access
Categorías:Microsoft Access Etiquetas:, , , ,

Cerrar todos los formularios

Public Sub CloseAllForms_Click()
Do While Forms.Count > 0
DoCmd.Close acForm, Forms(0).Name
Loop
End Sub
Fuente: access-programmers.co.uk
Categorías:Microsoft Access Etiquetas:, , ,

Calendario auxiliar en pop up

Entre todos los calendarios auxiliares para seleccionar una fecha este de Lebans es el que más me ha gustado. Así que lo utilizaré para mi aplicación. ¿Cuál utilizas tú?.

Descargar. Access 2000.

Fuente: Lebans

Mostrar datos en un informe previamente seleccionado en un cuadro de lista

Con la siguiente función se muestran en un informe únicamente los datos seleccionados previamente en un cuadro de diálogo:

Dim NumerosPedidos As String
Dim ElementoSeleccionado As Variant
' Formamos una cadena con los números de pedidos seleccionados en el cuadro de lista y separados por comas (en este caso, sería algo como "10248,10249,10250,...")
For Each ElementoSeleccionado In Me.lstPedidos.ItemsSelected
NumerosPedidos = NumerosPedidos & Me.lstPedidos.ItemData(ElementoSeleccionado) & ","
Next
' Si había algún pedido seleccionado
If Len(NumerosPedidos) > 0 Then
' Quitamos la última coma de la cadena
NumerosPedidos = Left(NumerosPedidos, Len(NumerosPedidos) - 1)
' Y abrimos el informe en vista previa para visualizar los pedidos seleccionados
DoCmd.OpenReport "Pedidos", acViewPreview, , "IdPedido IN(" & NumerosPedidos & ")"
Else
' No se ha seleccionado ningún elemento del cuadro de lista
MsgBox "Por favor, selecciona algún pedido"
End If

Descargar. Access 2000.

Fuente: Access & VBA

Ejemplo de un formulario continuo

El siguiente ejemplo muestra cómo crear un formulario continuo con un aspecto parecido al de una hoja de cálculo. Los datos se pueden ordenar haciendo click en la cabecera de cada columna, y se puede ajustar el ancho de las mismas de una forma muy sencilla. También se puede seleccionar la fecha a añadir en un campo mediante un calendario emergente.

Descargar. Access 2002

Fuente: Utter Access