Konuyu Değerlendir
  • 0 Oy - 0 Ortalama
  • 1
  • 2
  • 3
  • 4
  • 5
[FONKSiYON] Klasör seçip sadece dosya adının forma yazdırılması
#1
access-sql-18 
Merhaba,

Textbox(dosya_adi) alanına tıklandığında olay yordamına public function tanımlayarak spesifik bir klasörü açmasını ve seçtiğim 1 dosyanın(herhangi bir format olabilir) adının dosya alanına yazdırılmasını istiyorum. Bunun aşağıdaki şekilde bir fonksiyon oluşturup tıklandığında yordamına call selectfile yaptım. Ancak dosya adını yazdıramadım. Fonksiyon kodu yorumumda nasıl bir revize yapmamı önerirsiniz?

Public Function selectfile() As String
Dim fd As FileDialog
Set fd = Application.FileDialog(msoFileDialogOpen)
With fd
.AllowMultiSelect = False
.Title = "Lütfen Dosya Seçiniz"
.InitialFileName = "C:\Users\abc\Desktop\Access Works\Ek"
If .Show = True Then
selectfile = .SelectedItems(1)
Me.Dosya = Selectfile
Else
Exit Function
End If
End With
Set fd = Nothing

End Function
Bul
Alıntı
#2
sn elbenli
Me.argumanını fonksiyonda direk kullanamazsınız. Kullanmak için Public değişken kullanmalısınız.
Visual Basic
Public dosyaadim As String


Daha sonra fonksiyonu şu şekilde değiştirin
Visual Basic
Public Function selectfile() As String
Dim fd As FileDialog
Set fd = Application.FileDialog(msoFileDialogFilePicker)
 
With fd
.AllowMultiSelect = False
.Title = "Lütfen Dosya Seçiniz"
.InitialFileName = C:\Users\abc\Desktop\Access Works\Ek"
If .Show = True Then
selectfile = .SelectedItems(1)
'Klasör yoluyla beraber
'dosyaadim = selectfile
 
'Sadece dosya adı istenirse
'dosyaadim = Mid(selectfile, Len(.InitialFileName) - 3, Len(selectfile))
Else
Exit Function
End If
End With
Set fd = Nothing
End Function


Son bir noktayla işlemi bitirelim.
dosyaadı tıklandığında olayına aşağıdaki gibi yazın
Visual Basic
Private Sub dosya_adi_Click()
selectfile
Me.dosya_adi.Value = dosyaadim
End Sub



Kullanıcı İmzası
Tecrübe bütün öğretmenlerin en iyisidir.
Publilus Syrus

BLOG SİTEM
Access Makaleleri

YARDIMCI ARAÇ UYGULAMALARIM
1-Access Penceresini  Tek Tıklamayla Gizleme Uygulaması (UYGULAMA)
ARAYÜZ ÇALIŞMALARIM
1-GIF’li Ana Menü Uygulaması (MENU)
2-Başlangıç Ekranı (Bir sonraki Açılışta Bu Ekranı Göster/Gizle) (FORM)
3-Uygulama Ana ekranı (Otobüs Bilet Otomasyon) (MENU)
4-Web Menü Uygulaması (MENU)
5-Office Menü Uygulaması (ProgressBar+Şifre Ekranı)-(MENU)
6-Reklam Formu Uygulaması (FORM)
7-Ana Menü Oluşturma (Tablo Verileri Kullanarak) (MENU)
8-Etkileyici Formlar
9-Ana Menü Uygulaması
10- Kullanıcı Giriş Formu (Login Örneği)



Alıntı
#3
Sn onur_can

Belirttiğiniz gibi Fonksiyon kodunda düzenleme yaptım.

Visual Basic
Public Function SelectFile() As String
 
    Dim dosyaadim As String  'BU İFADEYİ HATA ALDIĞIM İÇİN EKLEDİM.
    Dim fd As FileDialog
    Set fd = Application.FileDialog(msoFileDialogFilePicker)
 
    With fd
    .AllowMultiSelect = False
    .Title = "Lütfen Dosya Seçiniz"
    .InitialFileName = "C:\Users\abc\Desktop\Access Works\Ek"
 
    If .Show = True Then
    SelectFile = .SelectedItems(1)
    dosyaadim = Mid(SelectFile, Len(.InitialFileName) - 3, Len(SelectFile))
    Else
    Exit Function
    End If
    End With
    Set fd = Nothing
 
End Function



Dosya alanına tıklandığında yordamında da düzenleme yaptım.
Visual Basic
Private Sub Dosya_Click()
    SelectFile
    Me.Dosya.Value = dosyaadim
End Sub



Ancak dosya alanını tıklayıp istediğim dosyayı seçtiğimde seçtiğim dosyanın adını yazmak yerine nerden getirdiğini tam olarak anlayamadığım bir dosya adını yazdırıyor. Sonraki her yeni kayıt seçimi için de aynı dosya adını yazdırıyor.
Rica etsem tekrar kontrol edebilir misiniz?
Bul
Alıntı
#4
Visual Basic
Dim dosyaadim As String  'BU İFADEYİ HATA ALDIĞIM İÇİN EKLEDİM.



bu değişkeni fonksiyonun en üstüne global olarak tanımlamalısınız. Mesajımda bahsetmiştim ama gözden kaçırdınız herhalde! Şu Şekilde;
fonksiyonun bulunduğu modülün en üstüne Option Explicit satırından hemen sonra. Ben size mesaj yazmadan test etmiştim fonksiyonu.
Visual Basic
Public dosyaadim As String



Fonksiyon:
Visual Basic
Dim fd As FileDialog
    Set fd = Application.FileDialog(msoFileDialogFilePicker)
 
    With fd
    .AllowMultiSelect = False
    .Title = "Lütfen Dosya Seçiniz"
    .InitialFileName = "C:\Users\abc\Desktop\Access Works\Ek"
 
    If .Show = True Then
    SelectFile = .SelectedItems(1)
    dosyaadim = Mid(SelectFile, Len(.InitialFileName) - 4, Len(SelectFile))
    Else
    Exit Function
    End If
    End With
    Set fd = Nothing







Kullanıcı İmzası
Tecrübe bütün öğretmenlerin en iyisidir.
Publilus Syrus

BLOG SİTEM
Access Makaleleri

YARDIMCI ARAÇ UYGULAMALARIM
1-Access Penceresini  Tek Tıklamayla Gizleme Uygulaması (UYGULAMA)
ARAYÜZ ÇALIŞMALARIM
1-GIF’li Ana Menü Uygulaması (MENU)
2-Başlangıç Ekranı (Bir sonraki Açılışta Bu Ekranı Göster/Gizle) (FORM)
3-Uygulama Ana ekranı (Otobüs Bilet Otomasyon) (MENU)
4-Web Menü Uygulaması (MENU)
5-Office Menü Uygulaması (ProgressBar+Şifre Ekranı)-(MENU)
6-Reklam Formu Uygulaması (FORM)
7-Ana Menü Oluşturma (Tablo Verileri Kullanarak) (MENU)
8-Etkileyici Formlar
9-Ana Menü Uygulaması
10- Kullanıcı Giriş Formu (Login Örneği)



Alıntı
#5
Sn onur_can,

Belirttiğiniz gibi dikkatimden kaçan bir durum oluşmuş. Kodları öneriniz doğrultusunda revize edince düzeldi.

İşbirliğiniz için çok teşekkür ederim.

Sevgiler..
Bul
Alıntı


İmlemeler

Benzer Konular...
Konu: Yazar Cevaplar: Gösterim: Son Mesaj
  [FORM] forma başka formdan veri çekme metocan 4 146 18-05-2019, 08:50
Son Mesaj: metocan
  [FORM] Klasör (Folder) Silme İlhanYaylıcı 2 52 26-04-2019, 13:38
Son Mesaj: İlhanYaylıcı
access-sql-18 [FORM] Çoklu Alt Formun Ana Forma İlişkilendirilmesi ebenli 6 125 09-04-2019, 14:36
Son Mesaj: ebenli
  [VBA] çoklu dosya taşıma kayaae 3 115 28-03-2019, 16:55
Son Mesaj: kayaae
  Raporda sayfa üst bilgisi sadece ilk sayfada görünmesi askme_16 8 6.955 15-03-2019, 22:01
Son Mesaj: hturkavci03
  [FORM] formda alt forma kayıt girmiyor anno55 2 150 18-02-2019, 15:26
Son Mesaj: anno55
access-sql-9 [FORM] Liste kutusunda sadece seçili kişiyi silme md79x 12 6.122 24-01-2019, 12:43
Son Mesaj: dsezgin
  [SORGU] Sadece yazıları göster ErkanE 1 111 04-01-2019, 16:51
Son Mesaj: Taruz

Foruma Git:


Bu konuyu görüntüleyen kullanıcı(lar): 1 Ziyaretçi