[VBA] Excel Den Veri Alma 2003
#1
Merhaba,

Excel dosyam var bu dosyada stok ürünleri var. Bu ürünleri toplu olarak Access e tablo olarak aktarmak istiyorum (Stok_Yeni)
ürünleri aktarırken dosyada aynı stoktan varsa güncelleme yapmasını (adet ve fiyat alanlarını), aynı stoktan yoksa eklemesini istiyorum.
bunu makroyla yapabiliyorum fakat makroda direk dosya yolu yazılı Excel dosyasını alıyor benim istediğim dosya yolunu seçtirmek.

sitede buna benzer konular var fakat ofis 2003 olarak bulamadım.

Konuyla alakalı yardımlarınızı bekliyorum


Eklenti Dosyaları
.rar   VT1.rar (Boyut: 196,1 KB / İndirilme: 88)



  Alıntı
Bu mesajı beğenenler:
#2
Sn estapan


benim istediğim dosya yolunu seçtirmek.
Visual Basic
  1. Dim dlg As FileDialog
  2. Dim Yer As Variant
  3. Dim DosyaAdi As String
  4. Dim SecDosya As Variant
  5. Set Yer = Application.FileDialog(msoFileDialogFilePicker)
  6. With Yer
  7. .AllowMultiSelect = False
  8. .ButtonName = "Resim Seç"
  9. .Filters.Add "Excel Dosyalari", "*.xls; *.xlsx;"
  10. .FilterIndex = 0
  11. .InitialFileName = Environ("UserProfile") & "\My Documents\*.xls;*.xlsx;*"
  12. .InitialView = msoFileDialogViewThumbnail
  13. .Title = "Excel Dosyasi Seciniz"
  14. If .Show = True Then
  15. For Each SecDosya In .SelectedItems
  16. DosyaAdi = SecDosya
  17. Next SecDosya
  18. End If
  19. End With



Excel dosyam var bu dosyada stok ürünleri var. Bu ürünleri toplu olarak Access e tablo olarak aktarmak istiyorum (Stok_Yeni)
Visual Basic
  1. DoCmd.TransferSpreadsheet acLink, IIf(mid(DosyaAdi, InStr(1, DosyaAdi, ".") + 1, Len(DosyaAdi)) = "xls", 8, 9), "Stok_Yeni", DosyaAdi, True



ürünleri aktarırken dosyada aynı stoktan varsa güncelleme yapmasını (adet ve fiyat alanlarını), aynı stoktan yoksa eklemesini istiyorum.
Baglanan excel dosyasini sorgu ile gruplayip, fiyatlarini max, min ile teke indirip, ekleme sorgusuna cevirin ve SQL'i
Visual Basic
  1. Currentdb.execute "Insert Into ......."


VBA da ki satirlari tek dugme altinda toplamaniz ile otomatik aktarim islevine elde edebilirsiniz.

Bagli excel dosyasini silmek icin
Visual Basic
  1. Docmd.deleteobject acquery, DosyaAdi



ile proseduru sonlandirabilirsiniz.







  Alıntı
Bu mesajı beğenenler:
#3
öncelikle cevabınız için teşekkürler
2003 de ".xxls" olmadığı için hata verdi onu silince düzeldi dosya seçme işlemini gerçekleştirdim fakat alttaki komutta IIF kısmında hata verdi

DoCmd.TransferSpreadsheet acLink, IIf(DosyaAdi, 1, InStr(1, DosyaAdi, ".") + 1, Len(DosyaAdi) = "xls", 9, 12), "Stok_Yeni", DosyaAdi, True



  Alıntı
Bu mesajı beğenenler:
#4
Sn estapan

Visual Basic
  1. DoCmd.TransferSpreadsheet acLink, IIf(mid(DosyaAdi, InStr(1, DosyaAdi, ".") + 1, Len(DosyaAdi)) = "xls", 8, 9), "Stok_Yeni", DosyaAdi, True



deneyebilirsiniz.





  Alıntı
Bu mesajı beğenenler:
#5
aşağıdaki hata mesajını veriyor


Eklenti Dosyaları
.png   access hata mesajı.png (Boyut: 2,57 KB / İndirilme: 83)



  Alıntı
Bu mesajı beğenenler:
#6
Sn estapan;

9, 12 yerine 8, 9 olmali. Dosya tip sonlarini yazmisim. Benzer hallerde islem komutu uzerine gelip secin ve F1 tusu ile MicroSoft'un yardim sayfasindan da sorunu cozebilirsiniz.



  Alıntı
Bu mesajı beğenenler:


Benzer Konular...
Konu: Yazar Cevaplar: Gösterim: Son Mesaj
  Yaklaşan Tarihte Uyarı Alma xosmaner 3 348 14-11-2025, 21:53
Son Mesaj: özgülapt
  Alt Rapordaki Sayfa Toplamını Alma tekinuy 6 418 08-10-2025, 22:26
Son Mesaj: tekinuy
  [SORGU] Soldan 3 Değere Göre Toplam Alma karacahil 2 347 14-05-2025, 17:03
Son Mesaj: karacahil
  [RAPOR] Raporda Hyperlink çıktı Alma ulsogr 4 375 09-01-2025, 10:08
Son Mesaj: ulsogr
access-sql-9 [TABLO] Tablodan Rapor Alma vefa1982 11 603 28-10-2024, 01:53
Son Mesaj: dsezgin
  Sorguda Tarihler Arası Veri Alma metınaycıcek 8 641 18-07-2024, 14:28
Son Mesaj: metınaycıcek
  Sürekli Formda Alt Toplam Alma ates2014 2 359 10-07-2024, 09:33
Son Mesaj: ates2014
  Hafızaya Alma evren89 1 343 01-06-2024, 19:42
Son Mesaj: dsezgin

Foruma Git:


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