Skip to main content

AccessTr.neT


Excel Den Veri Alma 2003

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
.rar VT1.rar (Dosya Boyutu: 196,1 KB | İndirme Sayısı: 15)
+repCahiller bilginin kölesi, Alimler ise efendisi olur.
Cevapla
#2
arkadaşlar yardımcı olacak kimse yokmu,
sadece sadece Excel dosyasını alıp (dosya yolunu seçerek) "Stok_Yeni" tablosu olarak Access e kaydetsede olur bunu VB koduyla yapmasını istiyorum.
+repCahiller bilginin kölesi, Alimler ise efendisi olur.
Cevapla
#3
sayın estapan,

bahsettiğiniz talebinize yönelik olarak;

kendi adıma geçerli olmak sureti ile eklediğiniz örnek uygulamayı inceleme imkanım olmaması gerekçesi ile,ancak yazdıklarınızdan bilgi edinerek fikir vermek amacı ile,

'NOT 1
'önce;
'mevcutta var olacak olan Stok_Yeni adlı tabloyu
'yeni güncel hali ile aktarmak için
'içeriğini temizlemek üzere tüm kayıtları silmek uygun olacaktır düşüncesi ile


DoCmd.SetWarnings False
DoCmd.RunSQL "DELETE * FROM Stok_Yeni"
DoCmd.SetWarnings True


'sonra da;
'ilgili Excel uygulamasından bahsi yapılan tüm verileri aktarmak için


DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel12, "Stok_Yeni", CurrentProject.Path & "\" & "excel_dosyasinin_adi.xls", True, "aktarilacak_alan_blogu"


'NOT 2
'aktarilacak_alan_blogu yazılı kısım için;
'hangi hücrelerin yer alacağı alan bloğunu aktarmak istiyorsanız ya da en son hangi sütunda kayıtlar varsa o sütunun yer alacağı o alanı yazabilirsiniz


'ÖRNEK:
'A1:Z65000 gibi

yukarıda yazılı kodları kullanmak sureti ile deneyebilirsiniz.

bilginize...iyi çalışmalar,saygılar.
Herkes, kendisinin AR-GE'cisidir...


Konulara eklenen Uygulama içeriğine yönelik Tavsiyeler
Alt Form Denetim Değerlerine ulaşma ve Alt Form Güncelleme
Kapatırken Düzenle (Compact On Close) Seçeneğinin İşaretlenmesi Hakkında
Cevapla
#4
Sayın Atoz112

Öncelikle cevabınız için teşekkürler.

excel dosyasının adının yazılarak değilde seçerek aktarılmasını istiyorum. Çünkü Excel dosya isimleri değişken olacak. Acaba kodları bu şekilde yazmanız mümkünmü.

Saygılar...
+repCahiller bilginin kölesi, Alimler ise efendisi olur.
Cevapla
#5
sayın estapan,

Alıntı:excel dosyasının adının yazılarak değilde seçerek aktarılmasını istiyorum. Çünkü Excel dosya isimleri değişken olacak. Acaba kodları bu şekilde yazmanız mümkünmü.

ifadenize yönelik olarak;

öncelikle,
eğer referanslarınızda (ALT + F11 tuşları ile kod sayfasına geçiniz ve üst menüden TOOLS - REFERENCES ifadesini seçiniz) Microsoft Office XX.X Object Library işaretli değilse bunu işaretleyiniz.

ardından,

  Dim dialog As FileDialog
  Dim filePath As String
  Dim fileName As String


  Set dialog = Application.FileDialog(msoFileDialogFilePicker)


  With dialog
    .AllowMultiSelect = False
    .Show
    filePath = .SelectedItems.Item(1)
    fileName = Right$(filePath, Len(filePath) - InStrRev(filePath, "\")) 
    
DoCmd.SetWarnings False
DoCmd.RunSQL "DELETE * FROM Stok_Yeni"
DoCmd.SetWarnings True


DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel12, "Stok_Yeni", fileName, True, "A1:M65000"


  End With

yukarıda yazılı kodları kullanmak sureti ile deneyiniz.

bilginize...iyi çalışmalar,saygılar.
Herkes, kendisinin AR-GE'cisidir...


Konulara eklenen Uygulama içeriğine yönelik Tavsiyeler
Alt Form Denetim Değerlerine ulaşma ve Alt Form Güncelleme
Kapatırken Düzenle (Compact On Close) Seçeneğinin İşaretlenmesi Hakkında
Cevapla
#6
dosyayı seçerek alma işini hallettik. Fakat alanlarda şöyle bir pröblem var.
excelden alırken Stock_kod alanı sayı olarak geliyor. Biz bu alanın metin olmasını, Stok alanı metin geliyor bu alanında sayı olmasını istiyoruz.
bu sorunu nasıl halledebiliriz.
(Stock_Kod alanı stok_kartı alanındaki StokNO ile ilişkilendirileceği için bu alanı "Metin" olarak ayarlamamız gerekiyor.)

bu konudada yardımcı olrsanız çok makbule geçer.
+repCahiller bilginin kölesi, Alimler ise efendisi olur.
Cevapla

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

Yorum yapmak için üye olmanız gerekiyor

ya da