Sayı alanına link vererek rakamlara uyuşan Word belgelerini açmak

Katılım
22 Ocak 2007
Mesajlar
128
Excel Vers. ve Dili
Ofis excell 2003 türkçe
Yine burada sorduğum bir konuydu, Sayın Modalı yardımcı olmuştu, Access'te resimlere yol göstermek gibi yol göstererek Word belgesi açılabiliyordu.

Bense ; Kaydedilmeye çalışılan rakam daha önce kaydedilmiş bir rakamsa, mesala 55 nolu numarayı yada 65 nolu numaraya daha önce girmişsiniz gibi bi uyarı verdiğimiz gibi.

Bilgisayarda bir kılasör içinde rakamlarla adlandırılmış Wort belgelerini Access içinde onun için ayarlanmış bir alana rakamları girdiğimizde o rakamla eşleşen word belgesinin açılmasını istiyorum.

Bunu yapmak mümkün mü, yapmak mümkünse yardım edecek arkadaşlara şimdiden teşekkürler.
 
Katılım
22 Ocak 2007
Mesajlar
815
Excel Vers. ve Dili
2003
cevap

bu kısım forma yapışacak ve formda
Private Sub Form_AfterInsert()
Liste6.Requery
End Sub

Private Sub Komut8_Click()



getFileName

End Sub





Sub getFileName()
Dim fileName As String
Dim result As Integer

With Application.FileDialog(msoFileDialogFilePicker)
.Title = "DÖKÜMAN EKLE"
.Filters.Add "All Files", "*.*"


.FilterIndex = 3
.AllowMultiSelect = False
.InitialFileName = "F:\GELEN EVRAK\"
result = .Show
If (result <> 0) Then
fileName = Trim(.SelectedItems.Item(1))


Me![YOL].Value = fileName


End If
End With
End Sub


Private Sub Liste6_Click()
varRet = fHandleFile(Liste6.Column(2), WIN_NORMAL)
End Sub

varRet = fHandleFile(Liste6.Column(2), WIN_NORMAL) 'burda liste kutusunun 3 stundaki döcümanın tıklayınca açılması sağlanıyor

.Filters.Add "All Files", "*.*" 'bu bölümün altına aşağıdaki gibi ekleme yaparsanız açılan klasördeki döcümanları sınırlamış olursunuz yani klasör içinde excel word access vs vs gibi belgeler olsun ama siz katışıklık olmasın diye yalnız excell ve word belgelerinin görünmesi istiyorsunuz işte o zaman filtreyi sınırlamanız lazım

.Filters.Add "doc", "*.doc"
.Filters.Add "xls", "*.xls"

gibi

bu koduda yeni bir modül açarak ona yapıştırın ve kaydedin


Option Compare Database
Option Explicit
'
' This code was originally written by Dev Ashish.
' It is not to be altered or distributed,
' except as part of an application.
' You are free to use it in any application,
' provided the copyright notice is left unchanged.
'
' Code Courtesy of Dev Ashish
'
Private Declare Function apiShellExecute Lib "shell32.dll" _
Alias "ShellExecuteA" _
(ByVal hwnd As Long, _
ByVal lpOperation As String, _
ByVal lpFile As String, _
ByVal lpParameters As String, _
ByVal lpDirectory As String, _
ByVal nShowCmd As Long) _
As Long

'***App Window Constants***
Public Const WIN_NORMAL = 1 'Open Normal
Public Const WIN_MAX = 2 'Open Maximized
Public Const WIN_MIN = 3 'Open Minimized

'***Error Codes***
Private Const ERROR_SUCCESS = 32&
Private Const ERROR_NO_ASSOC = 31&
Private Const ERROR_OUT_OF_MEM = 0&
Private Const ERROR_FILE_NOT_FOUND = 2&
Private Const ERROR_PATH_NOT_FOUND = 3&
Private Const ERROR_BAD_FORMAT = 11&

'***************Usage Examples***********************
'Open a folder: ?fHandleFile("C:\TEMP\",WIN_NORMAL)
'Call Email app: ?fHandleFile("mailto:dash10@hotmail.com",WIN_NORMAL)
'Open URL: ?fHandleFile("http://home.att.net/~dashish",WIN_NORMAL)
'Handle Unknown extensions (call Open With Dialog):
' ?fHandleFile("C:\TEMP\README",Win_Normal)
'Start Access instance:
' ?fHandleFile("C:\TEMP\CodeNStuff.mdb", Win_NORMAL)
'****************************************************

Function fHandleFile(stFile As String, lShowHow As Long)
Dim lRet As Long, varTaskID As Variant
Dim stRet As String
'First try ShellExecute
lRet = apiShellExecute(hWndAccessApp, vbNullString, _
stFile, vbNullString, vbNullString, lShowHow)

If lRet > ERROR_SUCCESS Then
stRet = vbNullString
lRet = -1
Else
Select Case lRet
Case ERROR_NO_ASSOC:
'Try the OpenWith dialog
varTaskID = Shell("rundll32.exe shell32.dll,OpenAs_RunDLL " _
& stFile, WIN_NORMAL)
lRet = (varTaskID <> 0)
Case ERROR_OUT_OF_MEM:
stRet = "Error: Out of Memory/Resources. Couldn't execute!"
Case ERROR_FILE_NOT_FOUND:
stRet = "Error: File not found. Couldn't Execute!"
Case ERROR_PATH_NOT_FOUND:
stRet = "Error: Path not found. Couldn't Execute!"
Case ERROR_BAD_FORMAT:
stRet = "Error: Bad File Format. Couldn't Execute!"
Case Else:
End Select
End If
fHandleFile = lRet & _
IIf(stRet = "", vbNullString, ", " & stRet)
End Function
Function fShellExeTest()
'Test UNC ShellExecute
fShellExeTest = apiShellExecute(hWndAccessApp, vbNullString, _
"\\server23\home-cd\dashish\ute_ref.txt", _
vbNullString, vbNullString, 1)
End Function
Function fShellExe(strFileName As String, lngShow As Long) As Long
fShellExe = apiShellExecute(hWndAccessApp, vbNullString, strFileName, _
vbNullString, vbNullString, lngShow)
End Function

Sub testShellEXE()
Dim lngX As Long
lngX = fShellExe("http://www.microsoft.com", 1)
End Sub


yinede ben örnek koydum örnekte önce evrakın adını yazıyorsunuz ve konusunu yazıyorsunuz ve evrak ekle düğmesine tıklayarak evrakı ekliyorsunuz yeni kayıt dediğinizde bir önceki evrak listeye ekleniyor işte siz açmak istediğiniz evrakı liteye tıklayarak açıyorsunuz
 
Son düzenleme:
Katılım
25 Aralık 2005
Mesajlar
4,160
Excel Vers. ve Dili
MS Office 2010 Pro Türkçe
Say&#305;n kalbinidinle,

&#214;nclikle bo&#351; bir mod&#252;l yarat&#305;n ve a&#351;a&#287;&#305;daki kodlar&#305; kopyalay&#305;p yap&#305;&#351;t&#305;r&#305;n. Bu kodlar word uygulamas&#305;n&#305; a&#231;an kodlard&#305;r.

Kod:
Sub OpenWordDoc(strDocName As String)
    Dim objApp As Object
 
    'Opens the document
 
    Set objApp = CreateObject("Word.Application")
    objApp.Visible = True
    objApp.Documents.Open strDocName
End Sub
Daha sonra &#252;st&#252;nden word belgesini a&#231;aca&#287;&#305;n&#305;z forma gelin ve word belgesinin say&#305;s&#305;n&#305; yazd&#305;&#287;&#305;n&#305;z metin kutusunun ad&#305;n&#305; txtWordBelgesi ad&#305;n&#305; verin. Hemen yan&#305;na da cmdOpenWordDoc ad&#305;nda bir d&#252;&#287;&#252;me ekleyin. Word belgeleriniz de C:\WordBelgeleri\ klas&#246;r&#252;n&#252;n i&#231;inde olsunlar. (Bu klas&#246;r yolunu sizinkine g&#246;re ayarlayabilirsiniz.) A&#351;a&#287;&#305;daki kodlar&#305; da kopyalay&#305;p form kod penceresine yap&#305;&#351;t&#305;r&#305;n.

Kod:
Private Sub cmdOpenWordDoc_Click()
Dim strFilePath As String
 
strFilePath="C:\WordBelgeleri\ " & Me.txtWordBelgesi & ".doc"
 
    If IsNull(strFilePath) Or Me.FilePath = "" Then
        MsgBox "L&#252;tfen yolun do&#287;ru oldu&#287;undan emin olun!", vbInformation, "&#304;&#351;lem &#304;ptal"          
        Exit Sub
    Else
 
        If (Dir(Me.FilePath) = "") Then
            MsgBox "G&#246;sterdi&#287;iniz yerde b&#246;yle bir belge yok!", vbExclamation, "&#304;&#351;lem &#304;ptal"
                         Exit Sub
        Else
        Call OpenWordDoc(strFilePath)
    End If
End Sub
&#304;yi &#231;al&#305;&#351;malar:)
 
Son düzenleme:
Katılım
22 Ocak 2007
Mesajlar
128
Excel Vers. ve Dili
Ofis excell 2003 türkçe
Sayın modalı ilginiz için teşekkürler.
Ancak; benim istediğim herbir kayıtta word belgesinin yolunu göstermeden, ilişkili bir satırın olay kısmına doğrudan bakması gereken sürücüyü ve klasörü göstererek rakam girilip çıkıldığında veya rakam değiştiğinde ona uyan Word belgesinin açılmasını sağlamaktı,
Aslında bunun yolunun olduğunu biliyorum, ancak birde becerebilsem,
Bütün bunlara rağmen ilgi ve sabırla cevap verdiğinizden dolaşı teşekkür ediyorum.
 
Katılım
25 Aralık 2005
Mesajlar
4,160
Excel Vers. ve Dili
MS Office 2010 Pro Türkçe
Sayın kalbinidinle,

Konuyu biraz daha açabilir misiniz. Tam olarak ne istediğinizi anlamış değilim. Word belgesi belirli bir yerde. Rakkama uyan word belgesi ne demek?

iyi çalışmalar
 
Katılım
22 Ocak 2007
Mesajlar
128
Excel Vers. ve Dili
Ofis excell 2003 türkçe
Sayın modalı cidden teşekkür ediyorum,
Kısaca arşiv programı gibi bi programımız var ve orada herbir kayıt için otomatik olmayan ancak sürekli bir artan kayıt numaramız var ve ben bu kayıtla ilişkili ancak not kısmına yazılacak kadar veri girmem gerekiyor ve ben word dosyasını tercih ediyorum. Kullanıcıya kolay olsun diye direk, atıyorum o dosya numarası 15 ise tıklandığında yada o alandan çıkıldığında 15 nolu d/arsiv/kişisel klasörünün içinde 15 nolu Word dosyasını açsın. Yani kod ile direk o klasöre tıkladığımda o baksın. Ben ayrıca yer göstermim. Kullanıcılar farklı olduğu için bu yol gösterme işini her zaman beceremiyebilebilirler.

Derdim aksaklığın önüne geçerek sıkıntıyı olmadan çözmek. Örneklerinin olduğunu biliyorum mesela bunu resimler için yapmışlar yol göstermeden bahsettiğim gibi uyan numaralara uygun serimleri forma taşıyorlar.

Derdim bu şimdiden teşekkürler.
 
Katılım
24 Eylül 2005
Mesajlar
332
Sayın kalbinidinle access olmadığı için denemedim ama sayın modalının verdiği kodlar ile word belgesi yolunu sizin klasörünüzün yolu ile değiştirdiğinizde sorun olmaz.
 
Katılım
25 Aralık 2005
Mesajlar
4,160
Excel Vers. ve Dili
MS Office 2010 Pro Türkçe
Sayın kalbinidinle,

Siz galiba gönderdiğim örneği iyi incelememişsiniz.

Siz strFilePath a fazla takılmayın. Word belgesini açmak için yolunu vermemiz gerekiyor. Ama benim örnekte word belgeleri C:\WordBelgeleri\ klasörünün içinde. Siz form üstünde, ya metin kutusu veya açılan kutudan bir sayı seçiyorsunuz diyelim ki 15. Yanında da bir düğüme var word belgesi gör gibi. Onu klikleyince C:\WordBelgeleri\ klasörü içindeki 15.doc adlı belge açılıyor, varsa yoksa uyarı veriyor. Siz dediklerimi bir yapın göreceksiniz sizin istediğiniz gibi çalışacak uygulama.

İyi çalışmalar
 

tamer42

Destek Ekibi
Destek Ekibi
Katılım
11 Mart 2005
Mesajlar
3,048
Excel Vers. ve Dili
Office 2013 İngilizce
Merhabalar;

Sn Modalı verdiğiniz kodlarda

Kod:
If IsNull(strFilePath) Or Me.FilePath = "" Then

satırında ".FilePath" üzerinde

Compile Error;

Method or data member not found

hatası veriyor:

Bir yanlışlık mı yapıyorum acaba?

İyi Çalışmalar.
 
Katılım
25 Aralık 2005
Mesajlar
4,160
Excel Vers. ve Dili
MS Office 2010 Pro Türkçe
Arkadaşlar,

Kusura bakmayın. Me.FilePath diye bir eleman yok tabiki.

Kod:
Me.FilePath
kodunu
Kod:
Me.txtWordBelgesi
ile değiştirin.

İyi çalışmalar:)
 

tamer42

Destek Ekibi
Destek Ekibi
Katılım
11 Mart 2005
Mesajlar
3,048
Excel Vers. ve Dili
Office 2013 İngilizce
Merhabalar;


Kod:
    Else
         If (Dir(Me.FilePath) = "") Then
            MsgBox "Gösterdiğiniz yerde böyle bir belge yok!", vbExclamation, "İşlem İptal"
                         Exit Sub
satırında; "Gösterdiğiniz yerde böyle bir belge yok!"

hata mesajını veriyor, bu satıraları silince istenen dosya açılıyor.

Benim asıl öğrenmek istediğim bu şekilde bir dosyaya değilde klasor' e ulaşmak,

Klasore ulaşıp açtıktan sonra; buradan istediğim dosyayı hemen açarım ; çünkü dosya adları tam tamına hatırlanamıyor. Uzun dosyaların tam adını buraya yazmak çok pratik gelmedi.


İyi Çalışmalar, İyi günler...
 
Katılım
25 Aralık 2005
Mesajlar
4,160
Excel Vers. ve Dili
MS Office 2010 Pro Türkçe
Sayın tamer42,

Yukarıda bununla ilgili açıklama yapmıştım. filepath orada metin kutusu alan adı. Onun yerine txtWordBelgesi kullanıldı anlatımda. Kodlarda bu değişikliği yapın lütfen.
 
Katılım
7 Kasım 2006
Mesajlar
109
Excel Vers. ve Dili
2003
Arkadaşlar iyi akşamlar
Sayın modalının vermiş olduğu kodları uygulayarak bir çaılşma yaptım.Güzelde çalışıyor.Yanlız benim klasörümde hem ".doc" uzantılı dosyalar hemde ".xls" uzantılı dosyalar bulunuyor. ".doc" uzantılı dosyalar istediğim gibi açılıyor fakat ".xls" uzantılı dosyaları nasıl açacağız? Yol gösterirsniz sevinirim.Şİmdiden Teşekkürler.
 
Katılım
25 Aralık 2005
Mesajlar
4,160
Excel Vers. ve Dili
MS Office 2010 Pro Türkçe
Sayın kerrim,

Excel uygulamasını açan kodlar:

Kod:
Dim xlApp As Excel.Application
Dim xlBook As Excel.Workbook

Set xlApp = New Excel.Application
Set xlBook = xlApp.Workbook.Open("c:\deneme.xls")
İyi çalışmalar:)
 
Katılım
7 Kasım 2006
Mesajlar
109
Excel Vers. ve Dili
2003
Sayın modalı öncelikle göstermiş olduğunuz ilgiye çok teşekkürler.Access öğrenmeye sizinle başladım ve sizinle devam ediyorum.Önce çalışmamdan bahsedeyim.Bir tane tablom var,burada bana gereken bütün dosyaların isimleri kayıtlı.Bir tanede formum var, burada açılan kutu kullanıp gerekli dosyaların isimlerini alıyorum.Butona tıkladığımda uzantısı ".doc" olan dosyayı sorunsuz açıyor.Ama uzantısı ".xls" ise açmıyor.Göndermiş olduğunuz kodları başka bir buton daha eklemeden Word açan kodlarla beraber nasıl uygulamam gerekiyor.Şimdiden teşekkürler.
 
Katılım
22 Ocak 2007
Mesajlar
815
Excel Vers. ve Dili
2003
cevap

benim kodlara sanırım hiç bakmadın bence bak çünkü orda ne girdiğin önemli değil bütün dosyaları açar pdf doc xls vs vs aklına ne gelirse bu bölümde düzenleme yaparsan klasördeki bütün dosyaları görürsün ben bu kod ile 5000 evrakı yönetiyorum pdf olarak sen dediklerimi yaparak istediğin dökümanı açabilirsin
 

tamer42

Destek Ekibi
Destek Ekibi
Katılım
11 Mart 2005
Mesajlar
3,048
Excel Vers. ve Dili
Office 2013 İngilizce
Sn Modalı ,

Excel açma kodunda;
Kod:
Dim xlApp As Excel.Application
satırında "user-defined type not defined "
hatası veriyor,

Teşekkürler, İyi Çalışmalar.
 
Katılım
7 Kasım 2006
Mesajlar
109
Excel Vers. ve Dili
2003
Sayın gülsüm1 sizin kodlarınızı anlayacak kadar, sizin gibi usta olamadık henüz.Sayın modalı bire bir annlattığı için o kodları uyguladım ve gerçekten işme yaradı.Ama küçük bir sorunum kaldı, yukarıda anlattığım gibi aynı metin kutusu ve aynı butonla hem ".doc" uzantılı dosyayı hemde ".xls" uzantılı dosyayı açmayı öğrenirsem hiç bir sorunum kalmayacak.Yinede benim gibi access'e yeni başlayanlara yol gösterdiğiniz için sonsuz teşekkürler.
 
Üst