Skip to main content

AccessTr.neT


Programda Word dosyası ve Klasör bağlamak

Programda Word dosyası ve Klasör bağlamak

Çözüldü #2
Sırayla gidelim

1. Arzu ettiğiniz yöntem mantıklıdır. Ancak ağ üzerinde herkesin bu dokümanı
açmasını istiyorsanız elbette ilk adreslemeyi herkesin ağ üzerinden erişebileceği - paylaşılmış -
bir konumda yapmalısınz ( yani bağlanacak belgeler öncelikle erşilebilir
bir konuma kopyalanmalı, bu sağlıklı yedek almak açısından da faydalı olacaktır )
a. personel kartları tablosuna bir alan ekleyin ve türüne "Köprü" - Hyperlink verin (adına ör : [belge] diyelim)
b. personel formu üzerine bu alanı ekleyin
c. alanın yanına bir buton ekleyin ve on click özelliğine
Kod:
On Error GoTo ErrEditHyper
  Me.belge.SetFocus
  DoCmd.RunCommand acCmdEditHyperlink
  Exit Sub
ErrEditHyper:
  Select Case err
    Case 2046
      Resume Next
    Case 2501
      Resume Next
    Case Else
      Resume Next
  End Select

d. Açılan diyakog kutusundan bağlamak istediğiniz
belgeyi ağ üzerindeki konumundan seçin

[Resim: ekranresmi00010.jpg]

e. Belgenin yolu tablonuza kayıt olacak ve tıklandığında word belgesini açacaktır. Burada eklenen belgenin türünün hiçbir önemi yoktur ( xls, txt, jpg, mpeg, vs eklenen belgeyi açabilecek yazılım bilgisayarınızda kurulu olduğu durumda tıklanan belge uzantısı ile ilintili uygulamayı zaten açacaktır, aynen bir kısayola çift tıklanması gibi )

ÖNEMLİ NOT : Bir personele birden fazla belge bağlayacaksanız, "a" şıkkında belirtilen alan ekleme yetersizdir. BELGELER adında bir tablo yaratıp bu tabloya PERSONEL_ID alanı ekleyip BELGELER.PERSONEL_ID = PERSONEL.PERSONEL_ID bağlantısıyla sınırsız belge ekleyebilirsiniz



2. Klasör erişimi için hocalarımızın verdiği bir modül
var, aşağıdaki kodu yeni modül açıp kayıt edin
Kod:
Option Compare Database
Option Explicit
Private Type BROWSEINFO
    hOwner As Long
    pidlRoot As Long
    pszDisplayName As String
    lpszTitle As String
    ulFlags As Long
    lpfn As Long
    lParam As Long
    iImage As Long
End Type
Private Declare Function SHGetPathFromIDList Lib "shell32.dll" Alias "SHGetPathFromIDListA" (ByVal pidl As Long, ByVal pszPath As String) As Long
Private Declare Function SHBrowseForFolder Lib "shell32.dll" Alias "SHBrowseForFolderA" (lpBrowseInfo As BROWSEINFO) As Long
Private Const BIF_RETURNONLYFSDIRS = &H1
Public Function BrowseDirectory(szDialogTitle As String) As String
On Error GoTo Err_BrowseDirectory
    Dim X As Long, bi As BROWSEINFO, dwIList As Long
    Dim szPath As String, wPos As Integer
    With bi
        .hOwner = hWndAccessApp
        .lpszTitle = szDialogTitle
        .ulFlags = BIF_RETURNONLYFSDIRS
    End With
    dwIList = SHBrowseForFolder(bi)
    szPath = Space$(512)
    X = SHGetPathFromIDList(ByVal dwIList, ByVal szPath)
    If X Then
        wPos = InStr(szPath, Chr(0))
        BrowseDirectory = Left$(szPath, wPos - 1)
    Else
        BrowseDirectory = ""
    End If
Exit_BrowseDirectory:
    Exit Function
Err_BrowseDirectory:
    MsgBox err.Number & " - " & err.Description
    Resume Exit_BrowseDirectory
End Function
Public Function TestOpeningDirectory()
On Error GoTo Err_TestOpeningDirectory
    Dim sDirectoryName As String
    sDirectoryName = BrowseDirectory("Find and select where to export the Excel report files.")
    If sDirectoryName <> "" Then MsgBox "You selected the '" & sDirectoryName & "' directory.", vbInformation
Exit_TestOpeningDirectory:
    Exit Function
Err_TestOpeningDirectory:
    MsgBox err.Number & " - " & err.Description
    Resume Exit_TestOpeningDirectory
End Function

Form üzerinde bir alan ( ör : [secilenklasor] )ve bir buton yaratın ve on click özelliğine aşağıdaki kodu girin
Kod:
Dim sDirectoryName As String
sDirectoryName = BrowseDirectory("Lütfen rapor klasörü seçiniz.")
me.secilenklasor = sDirectoryName

Elbette bu klasor bilgisini saklamak istiyorsanız ilk örnekte olduğu
gibi bu alanı bir tabloda öncelikle oluşturmalısınız

ÖNEMLİ NOT: Bu ikinci isteğiniz ilk isteğinizle bağlantılıysa bilmelisiniz ki
hyperlink bağlantıda ağ üzerindeki tam adres ( sürücü, klasör, alt klasör )
zaten kayıt altına alınmaktadır.


3. Ağ üzerinden paylaşım için
a. veritabanını bölün, tabloları bağlı tablo haline getirin
b. tabloları içeren mdb dosyasını ağ üzerinde herkesin erişebileceği
bir konuma taşıyın
c. Bölünmüş diğer mdb dosyasını ( buna arayüz diyelim ) açın ve bağlı
tablo yöneticisini açarak tablolarınızı yeni konumundan bağlayın
d. Bu master arayüzü diğer kullanıcılara kopyalayarak verin

[Resim: ekranresmi00007.jpg]


Basit bir uygulamanızı eklerseniz
bölüp geri gönderebilirim ama yapması çok kolay

[Resim: ekranresmi00008.jpg]






Kolay gelsin
okileturc, 18-03-2009 tarihinden beri AccessTr.neT üyesidir.
Son Düzenleme: 14/05/2009, 10:15, Düzenleyen: okileturc.
Cevapla

Bir hesap oluşturun veya yorum yapmak için giriş yapın

Yorum yapmak için üye olmanız gerekiyor

ya da

Bu Konudaki Yorumlar
Cvp: Programda Word dosyası ve Klasör bağlamak - Yazar: okileturc - 14/05/2009, 02:28
Task