Content Supported by Sourcelens Consulting
VERSION 5.00
Begin VB.Form frmAttachments
Caption = "Attachments"
ClientHeight = 2895
ClientLeft = 3870
ClientTop = 2595
ClientWidth = 6075
HelpContextID = 2016086
Icon = "ATTACH.frx":0000
KeyPreview = -1 'True
LinkTopic = "Form1"
LockControls = -1 'True
MDIChild = -1 'True
ScaleHeight = 2895
ScaleWidth = 6075
ShowInTaskbar = 0 'False
Begin VB.ListBox lstTables
Height = 2400
Left = 30
MultiSelect = 1 'Simple
Sorted = -1 'True
TabIndex = 4
Top = 15
Width = 6000
End
Begin VB.PictureBox picButtons
Align = 2 'Align Bottom
Appearance = 0 'Flat
BorderStyle = 0 'None
ForeColor = &H80000008&
Height = 405
Left = 0
ScaleHeight = 405
ScaleWidth = 6075
TabIndex = 0
Top = 2484
Width = 6075
Begin VB.CommandButton cmdNew
Caption = "&New"
Height = 330
Left = 120
MaskColor = &H00000000&
TabIndex = 3
Top = 45
Width = 1815
End
Begin VB.CommandButton cmdReAttach
Caption = "&ReAttach"
Height = 330
Left = 2160
MaskColor = &H00000000&
TabIndex = 2
Top = 45
Width = 1845
End
Begin VB.CommandButton cmdClose
Cancel = -1 'True
Caption = "&Close"
Height = 330
Left = 4200
MaskColor = &H00000000&
TabIndex = 1
Top = 45
Width = 1845
End
End
End
Attribute VB_Name = "frmAttachments"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Option Explicit
'>>>>>>>>>>>>>>>>>>>>>>>>
Const FORMCAPTION = "Attachments"
Const BUTTON1 = "&New"
Const BUTTON2 = "&ReAttach"
Const BUTTON3 = "&Close"
'>>>>>>>>>>>>>>>>>>>>>>>>
Sub cmdClose_Click()
Unload Me
End Sub
Sub cmdNew_Click()
frmNewAttach.Show vbModal
End Sub
Sub cmdReAttach_Click()
On Error GoTo REAErr
Dim i As Integer
Dim sTmp As String
Screen.MousePointer = vbHourglass
'execute the refreshlink method on all the selected items
For i = 0 To lstTables.ListCount - 1
If lstTables.Selected(i) Then
sTmp = Trim$(Left$(lstTables.Text, InStr(lstTables.Text, vbTab)))
gdbCurrentDB.TableDefs(sTmp).RefreshLink
End If
Next
MsgBar vbNullString, False
Screen.MousePointer = vbDefault
Exit Sub
REAErr:
ShowError
If i > 0 Then
Resume Next 'try to continue
End If
End Sub
Private Sub Form_KeyUp(KeyCode As Integer, Shift As Integer)
If KeyCode = vbKeyF1 And Shift = 0 Then
DisplayTopic 2016086
End If
End Sub
Sub Form_Load()
On Error GoTo FLErr
Dim tdf As TableDef
Dim i As Integer
Me.Caption = FORMCAPTION
cmdNew.Caption = BUTTON1
cmdReAttach.Caption = BUTTON2
cmdClose.Caption = BUTTON3
'get the attached tables from the tabledefs collection
For Each tdf In gdbCurrentDB.TableDefs
If (tdf.Attributes And dbAttachedTable) = dbAttachedTable Or _
(tdf.Attributes And dbAttachedODBC) = dbAttachedODBC Then
lstTables.AddItem tdf.Name & String(32 - Len(tdf.Name), " ") & vbTab & tdf.SourceTableName & "=>" & tdf.Connect
End If
Next
Me.Height = 3360
Me.Width = 6195
Me.Top = 1000
Me.Left = 1000
Screen.MousePointer = vbDefault
Exit Sub
FLErr:
ShowError
Unload Me
End Sub
Private Sub lstTables_DblClick()
On Error GoTo GTDErr
Screen.MousePointer = vbHourglass
gdbCurrentDB.TableDefs(Trim$(Left$(lstTables.Text, InStr(lstTables.Text, vbTab)))).RefreshLink
Screen.MousePointer = vbDefault
Exit Sub
GTDErr:
ShowError
' Resume 'x
End Sub
Private Sub Form_Resize()
On Error Resume Next
If Me.WindowState = 1 Then Exit Sub
lstTables.Width = Me.ScaleWidth - (lstTables.Left * 2)
lstTables.Height = Me.ScaleHeight - (picButtons.Height + 40)
End Sub
Public Sub AddAttachment()
On Error GoTo AttachErr
Dim sConnect As String
Dim tbl As TableDef
Dim i As Integer
Dim sTmp As String
With frmNewAttach
If DupeTableName(.txtAttachName.Text) Then
.txtAttachName.SetFocus
Exit Sub
End If
MsgBar "Attaching " & .txtAttachName.Text, True
Screen.MousePointer = vbHourglass
sConnect = .GetConnectStr()
'set the properties
Set tbl = gdbCurrentDB.CreateTableDef(.txtAttachName.Text)
tbl.SourceTableName = .cboTableName.Text
tbl.Connect = sConnect
If .chkSavePassword.Value = vbChecked Then
tbl.Attributes = dbAttachSavePWD
End If
If .chkExclusive.Value = vbChecked Then
tbl.Attributes = tbl.Attributes Or dbAttachExclusive
End If
gdbCurrentDB.TableDefs.Append tbl
'make sure and remove it if it was overwritten
For i = 0 To lstTables.ListCount - 1
sTmp = Trim$(Left$(lstTables.List(i), InStr(lstTables.List(i), vbTab)))
If UCase(sTmp) = UCase(.txtAttachName.Text) Then
lstTables.RemoveItem i
Exit For
End If
Next
'add it to the list
lstTables.AddItem .txtAttachName.Text & String(32 - Len(.txtAttachName.Text), " ") & vbTab & .cboTableName.Text & "=>" & sConnect
Screen.MousePointer = vbDefault
.txtAttachName.Text = vbNullString
.cboTableName.Text = vbNullString
End With
MsgBar vbNullString, False
Screen.MousePointer = vbDefault
Exit Sub
AttachErr:
ShowError
' Resume 'x
End Sub