AccessTr.neT

Tam Versiyon: Excel Den Veri Alma 2003
Şu anda arşiv modunu görüntülemektesiniz. Tam versiyonu görüntülemek için buraya tıklayınız.
Sayfalar: 1 2
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
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.
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.
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...
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.
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.
Sayfalar: 1 2