Programda Word dosyası ve Klasör bağlamak

1 2
14/05/2009, 01:20

danke

Arkadaşlar kolay gelsin.. İlk önce şunu söylemek isterim ki, daha önce Access ile ilgili başka sitelerden bilgi araştırırken şans eseri bu siteyi buldum, kayıt olduğumdan beri sorulara verilen cevapları ve örnekleri ilgiyle izliyorum, form canlı, kullanıcılar ilgili, yöneticilerin bilgili olduğunu gördüm, kısaca herşey için teşekkürler. (Samimi düşüncelerimdi)

Acceste amatör olarak program yapmaya çalışıyorum, ancak hem mantık hatası yapmamak istiyorum, hemde yöntem olarak bilmediğimi öğrenmek istiyorum.

Merak ettiklerimden,
Birincisi : Yapmaya çalıştığım programda 2000 kayıtlı kişi var, bunlarla ilgili tablolarda bilgiler var, sanki personel programı gibi. Her bir kayıtta şahısla ilgili ilişkili Word dosyası açmam (yolunu düğmeyle yazdırıp, fark bir düğmeyle de o yola bağlı word dosyası açılacak) mantıklı olur mu? (D klasöründe Ahmet KARA adlı klasörün içinde ona ait Word dosyası adresinin düğmeyle yazılıp, dosyanın düğmeyle açılması) eğer mantıklı olmazsa ne tavsiye edersiniz.. mantıklıysa yardımcı olabilirmisiniz?

İkincisi: Birde sadece D sürücüsünde "personel" klasöründe"AhmetKARA" klasörünü bir düğmeyle nasıl açtırabiliriz? Düğmeyle personele ait klasör yolunu nasıl yazdırabiliriz?

Üçüncüsü: Bu program üç bilgisayarda kullanılacak, programın kısa yolunu diğer bilgisayarlara attığımda bu şekilde yolları tanıtılmış klasörler açılabilir mi? tavsiyeniz. (Ağda tablolar ve formları bölmeyi bilmiyorum.)

Biraz uzunca derdimi anlattım, ilgilenip yardımcı olacak arkadaşlara şimdiden teşekkürler.
14/05/2009, 02:28

okileturc

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



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




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








Kolay gelsin
14/05/2009, 23:19

danke

Sayın okileturc, ilgilenip cevap verdiğiniz için teşekkür ediyorum, aktardıklarınızı inceleyip, tekrar bilgi vereceğim, kolay gelsin..
15/05/2009, 02:06

danke

Sayın okileturc, ilk önce gösterdiğiniz yardım için teşekkür ediyorum.

Ben yine sorunlarımı aktarayım isterseniz.

Birincisi : Verdiğiniz kodu ilgili form üzerinde düğme oluşturarak kullandım, dediğiniz gibi yolu hem tabloya yazıyor, hem üzerine tıklandığında yazılı yer açılıyor. (Sorun yok teşekkürler)

İkincisi: Dediğiniz gibi klasör yöntemi içinde aynısını kullandım, diğer modülle verdiğiniz örneği kullanmadım. (Bence sorunyok, sizce sakıncası olur mu? Avantaj açısından)

Üçüncüsü: Formda hazırlanmış bir programda gördüğüm resimle ilgili bir örneği kendi programıma uygulayım dediğimde şu sorun çıktı.



Sıkıntımsa şu, tabloya yine veri yolunu yazılıyor, resim klasörden çağırılıyor, ayrıca örnekte raporda kullanılacak resmin yolu bir başka alana yazılıyordu, resmin üzerine yapılan bir tıkla. İsteğim şu, biz ekle dediğimizde(Düğmeye tıkladığımızda), hem formda gözüküp, (tabloda ilgili alana yazılacak) hemde raporda kullanmak üzere bir başka alana yazılabalinir mi? (gerekmiyorsa nasıl?) Sil dediğimizde tabloda kayıtlı her iki alandaki veri yolları silinmesi gerekiyor,

Birde en sonunda (inşaallah bunu ben yapacam, daha önce yapmıştım) Access penceresini gizlediğimde, uyguladığımız bu özellikler sorunsuz çalışır mı?


Yardımcı olacak arkadaşlara şimdiden teşekkür ediyorum. (Yine uzun yazdık kusura bakmazsınız umarım)
Arkadaşlar yanlış yaptığım birşey mi var, yardımcı olursanız sevinirim.
16/05/2009, 11:47

danke

Yardımcı olacak kimse yokmu arkadaşlar?
1 2