Dosyadaki Resimleri Dosya Adına Göre Rapora Eklemek

1 2
05/03/2022, 13:31

ergin.tekinalp

Merhabalar;

Access ile geliştirdiğim uygulamada ürün maliyetlerini hesaplatıyorum. Bu ürünlerin bilgilerini tblParcaListesi adında bir taboda tutuyorum.

Formda yer alan bir buton ile Rapor2 adında bir rapor açıyorum ve formaki bilgileri istediğim gibi getirebiliyorum. Raporda her sayfada bir ürün ve bu ürüne ait maliyet kalemleri listeleniyor. Fakat raporda her ürüne ait resimlerin de görüntülenmesini istiyorum. MERKEZ0\DATA\Resimler klasöründe bulunuyor ve klasördeki resimlerin kodu ile ürünlerin kodları aynı.
eğer bu klasörde resim bulamazsa \\MERKEZ0\DATA\Ata\Resimler\ klasörüne bakıyor.
İstediğim raporda ürünün kodu A ise sistem resimlerin bulunduğu klasördeki A kodundaki resmi raporda göstermesi. Fakat bir türlü getiremedim.

Formda yer alan ve raporu açtığım butona aşağıdaki kodları yazdım

DoCmd.OpenReport "Rapor2", acViewPreview

Rapor açıldığında da aşağıdaki kodlar çalışıyor.

Private Sub Form_Activate()
Dim DosyaAdi, Dosya As String

    DosyaAdi = Me.txtParcaKodu
    Dosya = Dir("\\MERKEZ0\DATA\Resimler\" & DosyaAdi & ".*", 1)
    If Dosya = "" Then
        Dosya = Dir("\\MERKEZ0\DATA\Ata\Resimler\" & DosyaAdi & ".*", 1)
        If Dosya = "" Then
        rsmStok.Picture = "\\merkez0\data\Resimler\YOK.BMP"
          Else
        rsmStok.Picture = "\\Merkez0\data\aTA\Resimler\" & Dosya
                           
        End If
        Else
        rsmStok.Picture = "\\Merkez0\data\Resimler\" & Dosya
  End If
AltToplamlar
End Sub

Raporda sadece resimler gelmiyor. Raporun ekran görüntüsü ekte belirtilmiştir.

Yardımcı olursanız sevinirim.
05/03/2022, 13:42

ergin.tekinalp

Arkadaşlar yukarıda rapor açılırken çalışan kodları belirtirken sanırım yanlışlıkl formun açılışında çalışan kodları belirtmişim. olması gereken kodlar aşağıda belirtilmiştir.

Private Sub Report_Open(Cancel As Integer)
Dim DosyaAdi, Dosya As String

DosyaAdi = Me.RecordSource


Dosya = Dir("\\MERKEZ0\DATA\Resimler\" & DosyaAdi & ".*", 1)
If Dosya = "" Then
Dosya = Dir("\\MERKEZ0\DATA\Ata\Resimler\" & DosyaAdi & ".*", 1)
If Dosya = "" Then
rsmStok.Picture = "\\merkez0\data\Resimler\YOK.BMP"
Else
rsmStok.Picture = "\\Merkez0\data\aTA\Resimler\" & Dosya

End If
Else
rsmStok.Picture = "\\Merkez0\data\Resimler\" & Dosya
End If
End Sub
05/03/2022, 13:59

ergin.tekinalp

Rapor açılırken, çalışan kodlarda belirttiğim DosyaAdi değişkenine ürünün kodunu eşitleyebilsem sorun çözülecek gibi ama ürün kodunu yakalayamadım.

DosyaAdi değişkenini DosyaAdi = Me.RecordSource yerine aşağıda belirttiğim şekilde de denedim yine olmadı. Hatta rapor hata verdi.

DosyaAdi = Me.ParcaKodu
DosyaAdi = Me.txtParcaKodu
DosyaAdi = Report_Rapor2.ParcaKodu
DosyaAdi = Report_Rapor2.txtParcaKodu
05/03/2022, 19:03

C*e*l*o*y*c*e

Merhaba yapınızı bilmiyorum ama ben aşagıdaki gibi,kullanıyorrum

Dim PictureFile As String
PictureFile = CurrentProject.Path & "\TCResim\" & Forms!Frm_Kursiyerler!Adı_Soyadı & "-" & Forms!Frm_Kursiyerler!tc_numarasi & ".jpg"

If Len(Dir(PictureFile)) < 1 Then
PaTaTes = CurrentProject.Path & "\TCResim\Resimyok.jpg"
ImageFrame.Picture = PaTaTes

Else
PaTaTes = CurrentProject.Path & "\TCResim\" & Forms!Frm_Kursiyerler!Adı_Soyadı & "-" & Forms!Frm_Kursiyerler!tc_numarasi & ".jpg"
ImageFrame.Picture = PaTaTes
End If
07/03/2022, 09:10

ergin.tekinalp

Merhaba;

Kodlarınızı incelediğim kadarıyla siz resimleri formda göstertiyorsunuz ve sistem TCResim klasörüne gidiyor. Formda yer alan adısoyadı ve tc alanındaki bilgilere denk gelen resmi bulup formda gösteriyor.

Benim ilk gönderdiğim mesajdaki kodlar da eğer resmi formda belirteceksem sorunsuz bir şekilde çalışıyor.

Ben herhangi bir forma bağlı olmadan rapor açmak istiyorum. Sizin örnekte sistem resim adını nasılki formdaki adsoyad ve tc lanından alıp getiriyorda benim projemde de açılan raporun üzerinde yer alan Parca Kodu alanında belirtilen bilgiye göre resimleri getirmesini istiyorum.
Kodlarımı aşağıdaki gibi düzenlediğimde rapora resimler geliyor ama rastgele geliyor. yani parckoduna denk gelen resim gelmiyor. Raporun resmini de belirttim. Raporda her resim Parca Kodu alanında belirtilen bilgiye göre gelse sorun çözülmüş olacak.

Private Sub Report_Open(Cancel As Integer)
Dim DosyaAdi, Dosya As String

  DosyaAdi = Dlookup ("ParcaKodu", "tblParcaListesi")
             
  Dosya = Dir("\\MERKEZ0\DATA\Resimler\" & DosyaAdi & ".*", 1)
    If Dosya = "" Then
        Dosya = Dir("\\MERKEZ0\DATA\Ata\Resimler\" & DosyaAdi & ".*", 1)
      If Dosya = "" Then
        rsmStok.Picture = "\\merkez0\data\Resimler\YOK.BMP"
          Else
        rsmStok.Picture = "\\Merkez0\data\aTA\Resimler\" & Dosya
                           
        End If
        Else
        rsmStok.Picture = "\\Merkez0\data\Resimler\" & Dosya
  End If

End Sub[img]
[/img]
07/03/2022, 09:21

ergin.tekinalp

Kodları aşağıdaki gibi güncelledim bu sefer de "Değeri olmayan bir ifade girdiniz" şeklinde bir hata veriyor.

Private Sub Report_Open(Cancel As Integer)
Dim DosyaAdi, Dosya As String

DosyaAdi = Dlookup ("ParcaKodu", "tblParcaListesi", "ParcaKodu ='" & Report_Rapor2.txtParcaKodu & "' ")

Dosya = Dir("\\MERKEZ0\DATA\Resimler\" & DosyaAdi & ".*", 1)
If Dosya = "" Then
Dosya = Dir("\\MERKEZ0\DATA\Ata\Resimler\" & DosyaAdi & ".*", 1)
If Dosya = "" Then
rsmStok.Picture = "\\merkez0\data\Resimler\YOK.BMP"
Else
rsmStok.Picture = "\\Merkez0\data\aTA\Resimler\" & Dosya

End If
Else
rsmStok.Picture = "\\Merkez0\data\Resimler\" & Dosya
End If

End Sub
1 2