Skip to main content

AccessTr.neT


İlişkisiz Nesne Kullanımı

Osman Eliboyalı38
Osman Eliboyalı38
10
1069

İlişkisiz Nesne Kullanımı

#7
Raporunuz form üzerinden açılıyor ve formda kullandığınız Excel dosyasının adına ilişkin bir textbox var şöyle ki yukarıdaki ifadenize binaen 21-00016 değerine sahip bir textbox var ve siz raporda Unbound OLEObject için 21-00016.xlsx dosyasını kullanıyorsunuz doğru mu anladım? (Kusura bakmayın örneğiniz olmadığı için gözümde canlandırmaya çalışıyorum ve inanın inanılmaz bir temponun içinde aradaki kahve çay molalarımda bakıp yardımcı olmaya çalıştığım için zaman zaman ipin ucun kaçıyor nerede kaldığımı unutuyorum. Net anladım mı sizi teyit etmek istedim)
Cevapla
#8
Bir örnek ekledim,

Form açılınca metin kutusuna  ilgili Excel dosya numarası geliyor, sonuna.xlsx eklemedim, ama ekleyebilirim.
Formdaki butona tıklayınca "excel" isimli raporu açıyor,
Rapor açılınca Unbound OLEObject kısmında formdaki metin kutusunda yazan 21-00016 numaralı exceli getirmek istiyorum.
Metin kutusunda yer alan numara otomatik artan bir değişken.

VBA kod olarak  Unbound OLEObject  için  Excel yolunu nasıl tanımlamam gerektiği noktasında yardımı olmanız bile işimi çözer, excelin adresini manuel olarak rapor tasarım modunda iken    "düzen /    ole/dde bağlantıları / kaynağı değiştir" seçerek yapıyorum, ilk gönderdiğim dosyada resimleri mevcut.
.rar Örnek.rar (Dosya Boyutu: 122,35 KB | İndirme Sayısı: 1)
Cevapla
#9
Merhaba.
Doğru anladıysam kod işinizi görür.
Metin0 a yazılan varsa Excel açılır yoksa yok mesajı verir.
fil.Path bu yolu verir kodda.
C:/Excel içindeki tüm klasörlerde arama yapar.

Option Compare Database
Dim varmi As Boolean

Private Sub Form_Open(Cancel As Integer)
    DoCmd.Maximize
    varmi = False
    Metin0.Value = "21-00016"
End Sub

Private Sub Komut2_Click()
    Const yol As String = "C:/Excel"
    If Dir(yol, vbDirectory) = "" Then
        MsgBox "Aranan klasör yok", vbCritical, "Hata"
        Exit Sub
    End If
   
    Call excelAc(yol)
    If varmi = True Then
        MsgBox "Dosya bulundu"
    Else
        MsgBox "Dosya bulunamadi..", vbCritical, "Hata"
    End If
    DoCmd.OpenReport "excel", acPreview
End Sub

Sub excelAc(StartFolderpath As String)

    Dim fil As Object
    Dim klasor As Object
    Dim Altklasor As Object
    Dim fso As Object
    varmi = False
    Set fso = CreateObject("Scripting.FileSystemObject")

    Set klasor = fso.GetFolder(StartFolderpath)

    For Each fil In klasor.Files
        If fso.GetBaseName(fil) = Metin0.Value And fso.GetExtensionName(fil) = "xlsx" Then
            AcExcel fil.Path
            varmi = True
            Exit Sub
        End If
    Next
        For Each Altklasor In klasor.SubFolders
            Call excelAc(Altklasor.Path)
        Next
    Set klasor = Nothing: Set Altklasor = Nothing: Set fil = Nothing:  Set fso = Nothing
End Sub

Sub AcExcel(adres As String)
    Dim obj As Object
    Set obj = CreateObject("Shell.Application")
        obj.ShellExecute (adres)
    Set obj = Nothing
End Sub
.rar Örnek.rar (Dosya Boyutu: 125,51 KB | İndirme Sayısı: 1)
Cevapla
#10
Sayın @Osman Eliboyalı38 sorunuz çözümlendi mi geri bildirimde bulunun lütfen.
Cevapla
#11
(06/05/2021, 01:01)atoykan yazdı: Sayın @Osman Eliboyalı38 sorunuz çözümlendi mi geri bildirimde bulunun lütfen.
Bizde çözüldü olarak taşırız abey Img-grin
Hem konu aç hem takip etme oyun oynar gibi.
Cevapla

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

Yorum yapmak için üye olmanız gerekiyor

ya da
Task