sábado, 10 de octubre de 2015

¿Cómo cambiar la cadena de conexión en tablas vinculadas de MS Access?

Function displayLinks()
    Dim tdf As TableDef
    Dim db As Database
        Set db = CurrentDb
        For Each tdf In CurrentDb.TableDefs
            If tdf.Connect <> vbNullString Then
               Debug.Print tdf.Name; " -- "; tdf.SourceTableName; " -- "; tdf.Connect
            End If
        Next
End Function

Function cambiarLinks()
    Dim tdf As TableDef
    Set db = CurrentDb
        For Each tdf In CurrentDb.TableDefs
            If tdf.Connect <> vbNullString Then
                tdf.Connect = "ODBC;DSN=xx;APP=Microsoft Office 2010;DATABASE=xx;TABLE=" & tdf.Name
                tdf.RefreshLink
            End If
        Next
End Function

martes, 8 de septiembre de 2015

¿Cómo ocultar una columna en una vista de hoja de datos programaticamente en MS Access?

En el evento load, ocultamos el control:

Private Sub Form_Load()
    If Internal.opcionActiva("Fecha Pedido Auditoria") Then
        Me.Controls("FechaPedido").ColumnHidden = False
    Else
        Me.Controls("FechaPedido").ColumnHidden = True
    End If
    DoCmd.SetWarnings False
End Sub

Es muy importante desconectar los warnings y volverlos a conectar en el cierre para evitar la fastidiosa pregunta que les muestro en esta imagen:



Private Sub Form_Close()
    DoCmd.SetWarnings True
End Sub


viernes, 14 de agosto de 2015

¿Cómo obtener la desripción de una vista en SQL Server?

Ejemplo

use msdb
GO
select OBJECT_DEFINITION(OBJECT_id('sysmail_event_log')) 
AS [processing-instruction(x)] FOR XML PATH('')
GO

Resultado

<?x 
CREATE VIEW sysmail_event_log
AS
SELECT log_id,
       CASE event_type 
          WHEN 0 THEN 'success' 
          WHEN 1 THEN 'information' 
          WHEN 2 THEN 'warning' 
          ELSE 'error' 
       END as event_type,
       log_date,
       description,
       process_id,
       sl.mailitem_id,
       account_id,
       sl.last_mod_date,
       sl.last_mod_user
FROM [dbo].[sysmail_log]  sl
WHERE (ISNULL(IS_SRVROLEMEMBER(N'sysadmin'), 0) = 1) OR 
      (EXISTS ( SELECT mailitem_id FROM [dbo].[sysmail_allitems] ai WHERE sl.mailitem_id = ai.mailitem_id ))

?>

jueves, 16 de julio de 2015

Borrar una restricción DEFAULT si conocer el nombre - SQL SERVER

DECLARE @ObjectName NVARCHAR(100)
SELECT @ObjectName = OBJECT_NAME([default_object_id]) 
FROM SYS.COLUMNS
WHERE [object_id] = OBJECT_ID('[dbo].[Certificados]') AND [name] = 'Print_QR';
EXEC('ALTER TABLE [dbo].[Certificados] DROP CONSTRAINT ' + @ObjectName)
GO

miércoles, 8 de julio de 2015

Sencillo método para abrir un archivo desde un campo hipervínculo en MS ACCESS.

Sencillo método para abrir un archivo desde un campo hipervínculo en MS ACCESS.

Private Sub FileList_Click()
    On Error GoTo NoSePuedoAbrir
    Application.FollowHyperlink FileList.Value
    Exit Sub
NoSePuedoAbrir:
    MsgBox "No se puede abrir el archivo porque no existe una aplicación asociada a esa extensión."
    Exit Sub
End Sub