25 noviembre 2008

Comprobar si una tabla existe en Microsoft Access / VBA

Casi siempre, para un mismo problema, hay más de una solución.

Cuando trabajamos con VBA en Microsoft Access y deseamos comprobar la existencia de una tabla, son tres las formas de tratar el problema que vienen de inmediato a nuestra mente.

1) Recorrer los elementos de la colección TableDefs, para encontrar el elemento deseado.

Private Function TableExistsEx(ByVal Name As String) As Boolean
Dim i As Integer
Dim logEx As Boolean

Name = LCase(Name)
For i = vbEmpty To (CurrentDb.TableDefs.Count - 1)
If LCase(CurrentDb.TableDefs(i).Name) = Name Then
logEx = True
Exit For
End If
Next

TableExistsEx = logEx
End Function

2) Asignar el elemento de la colección TableDefs a un objeto de tal forma que al no existir nos genere un error.

Private Function TableExists(ByVal Name As String) As Boolean
Dim def As DAO.TableDef

On Local Error Resume Next

Set def = CurrentDb.TableDefs(Name)
TableExists = (Err.Number = vbEmpty)

On Local Error GoTo 0

End Function

3) Consultar la tabla MSysObjects

Private Function TableExists(ByVal Name As String) As Boolean

TableExists = _
Not (Nz(DLookup("[Name]", "MSysObjects", _
"[Name]='" & _
Name & "' And [Type]=6"), _
"No") = "No")
End Function

24 noviembre 2008

Transferir archivos a través de SSH con WinSCP

WinSCP es un cliente gráfico de SFTP (Security File Transfer Protocol) y SCP (Secure Copy) que hace uso del protocolo SSH (Secure SHell) tanto SSH-1 como SSH-2.

Permite realizar operaciones básicas con archivos, como descargar, subir, crear, renombrar y borrar. También permite crear y renombrar carpetas, cambiar las propiedades de un archivo o carpeta, entre otras cosas.

La interfaz está provista de paneles duales y nos permite escoger entre dos tipos de configuración, cada una de ellas muy personalizable. La interfaz tipo Explorador de Windows sería la más apropiada para la mayoría de usuarios, y la interfaz tipo Norton Commander para usuarios más exigentes.

La primera ventana que veremos es la ventana de inicio de sesión, que nos permite ingresar los datos para una nueva sesión, o elegir una almacenada previamente.


Cuando nos conectemos por primera vez a un equipo, nos pedirá que confirmemos que es un equipo de confianza.


Si en la ventana de inicio de sesión dejamos la contraseña en blanco o ingresamos una contraseña inválida nos mostrará la siguiente ventana para que proporcionemos una contraseña válida.


Una vez establecida la conexión veremos la interfaz gráfica de la aplicación, tal y como la tengamos configurada.


WinSCP es una aplicación bajo licencia GNU y parte de su código deriva de PuTTY.

Referencias:

Página oficial
Descargar...

21 noviembre 2008

Visor de imágenes IrfanView

IrfanView es en mi opinion el mejor visor de imágenes para las plataformas Microsoft Windows. Tiene la capacidad de visualizar y reproducir una gran cantidad de formatos.


Esta aplicación está diseñada teniendo en mente su tamaño, rapidéz, facilidad de uso e incluso la portabilidad.

Aunque la primera versión apareció en 1996, no fue sino hasta el año 98 que la empecé a utilizar y es una más de las aplicaciones que componen mi caja de herramientas.

El programa se llama así por su creador, Irfan Skiljan de Bosnia y Herzegovina.

Entre los formatos que soporta están los siguientes.

Formatos gráficos:

ANI, CUR, AWD*, B3D*, BMP, DIB, CAM*, CLP, CPT, CRW/CR2*, DCM/ACR/IMA*, DCX, DDS*, DJVU, IW44*, DXF, DWG, HPGL, CGM, SVG*, ECW*, EMF, EPS, PS, PDF*, EXR*, FITS*, FPX*, FSH*, G3*, GIF, HDR*, HDP, WDP*, ICL, EXE, DLL, ICO, ICS*, IFF, LBM*, IMG*, JP2, JPC, J2K*, JPG, JPEG, JPM*, KDC*, LDF*, LWF*, Mac PICT, QTIF, MP4*, MNG, JNG*, MRC*, MrSID, SID*, DNG, EEF, NEF, MRW, ORF, RAF, DCR, SRF/ARW, PEF, X3F*, NLM, NOL, NGG*, PBM, PCD, PCX, PDF*, PGM, PIC*, PNG, PPM, PSD, PSP*, PVR*, RAS, SUN*, RAW, YUV*, RLE*, SFF*, SFW*, SGI, RGB*, SIF*, SWF, FLV*, TGA, TIF, TIFF, TTF*, TXT, VTF*, WAD*, WAL*, WBMP*, WMF, XBM*, XPM*

Audio/Video:

AIF, AU, SND, MED*, MID, MP3*, OGG*, RA*, WAV, ASF, AVI, MOV*, MP4*, MPG, MPEG, WMA, WMV

* = Requiere PlugIn.

Es gratuito para uso privado, y requiere un registro pagado para su uso comercial.

Referencias:

Página oficial
Descargar...

19 noviembre 2008

Cambiar el editor predeterminado en Linux

Para cambiar el editor predeterminado en la consola de Linux basta la siguiente instrucción.

El "vi", que es el editor predeterminado en la mayoría de distribuciones, no es muy amigable con herrmientas como PuTTY. La solución, como lo vemos en la imagen de arriba, es la instrucción

export EDITOR=nano

Para que el cambio sea permanente al usuario, debemos agregar la instrucción en el archivo .bash_profile que se encuentra en la carpeta del usuario.

Si queremos que el cambio sea para todos los usuarios, agregamos la instrucción al archivo profile en la carpeta /etc para lo cual deberemos tener los privilegios necesarios.

PuTTY el mejor cliente SSH

Como todas las herramientas es un asunto de preferencias... pero en mi USB una que no puede faltar es PuTTY, en mi opinión, el mejor cliente SSH que he encontrado.

La primera pantalla que veremos corresponde a la configuración de la conexión. Podemos conectarnos directamente o almacenar la configuración de las sesiones que usamos con frecuencia.
La primera vez que nos conectemos a un equipo nos mostrará un cuadro de diálogo pidiendo que confirmemos si es un equipo de confianza.

Una vez establecida la conexión completamos el proceso de autentificación en el equipo destino.

Ahora podemos trabajar con toda tranquilidad...

Referencias:

Página oficial de PuTTY Tray
Descargar...

11 noviembre 2008

Configurar Gmail para el envío del Diario en Cobian Backup Amanita

Para usar nuestra cuenta de Gmail para el envío del Diario en Cobian Backup 9, debemos ingresar la configuración en la sección SMTP de la ventana de opciones.



Además de ello habrá que seleccionar el nivel de seguirdad "Implícito" en las opciones SSL.



NOTA: como se menciona en el comentario de abajo, se deberá usar SSLv23.

06 noviembre 2008

Orden de eventos para un formulario en Microsoft Access

Cuando se abre un formulario, la secuencia de los eventos es:

Open -> Load -> Resize -> Activate -> [GotFocus ->] Current

NOTA: El evento GotFocus se dispara antes de Current si el formulario no tiene controles que puedan recibir el foco (activos).

...al cerrar el formulario, la secuencia es:

Unload -> Deactivate -> Close