08/02/2020, 14:21
Excelden Veri Alma
08/02/2020, 16:02
berduş
Bu son hali :
1 - Accesste Olmayan veriyi Alma/ Değişeni Güncelleme
2 - Sadece değişeni güncelleme
3 - Sadece olmayı ekleme
4 -
1 - Accesste Olmayan veriyi Alma/ Değişeni Güncelleme
2 - Sadece değişeni güncelleme
3 - Sadece olmayı ekleme
4 -
(07/02/2020, 22:28)feraz yazdı: Bu arada güncellenmek için bağlanılan Excel açık olursa program donuyor yani Excel kapalı olmalı galiba.bağlı tablolarda eğer ilişkili Excel dosyası açıksa dosya kilitleniyordu bu dosyada dosyanın geçici kopyası oluşturularak sorun giderildi BasZmn satırının altına eklenecek kod: Geçici Dosya oluşturma
BasZmn = Now '<--zaten var alttakiler eklenecek
Dim fDialog As Office.FileDialog
Set FSO = CreateObject("Scripting.FileSystemObject") 'E?er Excel dosyas? a??ksa ba?l
Source = KynkDos
KynkDos = CurrentProject.Path & "\Sil_Tmp_hy" & Mid(KynkDos, InStrRev(KynkDos, "."))
FSO.CopyFile Source, KynkDos, True
Geçici dosyayı silme: Kill KynkDos
BitZmn = Now '<--zaten var üsteki kod tek eklenecek
08/02/2020, 16:11
feraz
(08/02/2020, 16:02)berduş yazdı: Bu son hali :Alttakinde amaç nedir?
1 - Accesste Olmayan veriyi Alma/ Değişeni Güncelleme
2 - Sadece değişeni güncelleme
3 - Sadece olmayı ekleme
4 - bağlı tablolarda eğer ilişkili Excel dosyası açıksa dosya kilitleniyordu bu dosyada dosyanın geçici kopyası oluşturularak sorun giderildi BasZmn satırının altına eklenecek kod: Geçici Dosya oluşturma
Geçici dosyayı silme:BasZmn = Now '<--zaten var alttakiler eklenecek
Dim fDialog As Office.FileDialog
Set FSO = CreateObject("Scripting.FileSystemObject") 'E?er Excel dosyas? a??ksa ba?l
Source = KynkDos
KynkDos = CurrentProject.Path & "\Sil_Tmp_hy" & Mid(KynkDos, InStrRev(KynkDos, "."))
FSO.CopyFile Source, KynkDos, True
Kill KynkDos
BitZmn = Now '<--zaten var üsteki kod tek eklenecek
KynkDos = CurrentProject.Path & "\Sil_Tmp_hy" & Mid(KynkDos, InStrRev(KynkDos, "."))
08/02/2020, 16:15
berduş
08/02/2020, 17:19
berduş
güncelleme kodunu aşağıdaki gibi değiştirip dener misiniz?
Guncelle = " UPDATE TmpTablo INNER JOIN Bilgiler ON TmpTablo.Kod = Bilgiler.Kod " & _
" SET " & _
" Bilgiler.Ad = [TmpTablo]![Ad]," & _
" Bilgiler.Soyad = [TmpTablo]![Soyad]," & _
" Bilgiler.Yas = [TmpTablo]![Yas]," & _
" Bilgiler.Tarih = [TmpTablo]![Tarih] " & _
" WHERE TmpTablo.Kod In ( " & _
" SELECT Bilgiler.Kod FROM TmpTablo INNER JOIN Bilgiler ON TmpTablo.Kod = Bilgiler.Kod " & _
" WHERE nz([Bilgiler]![Ad] & [Bilgiler]![Soyad] & [Bilgiler]![Yas] & [Bilgiler]![Tarih],'') <> " & _
" nz([TmpTablo]![Ad] & [TmpTablo]![Soyad] & [TmpTablo]![Yas] & [TmpTablo]![Tarih],''))"
08/02/2020, 19:37
feraz
Kod:
.Filters.Add "All Files", "*.*"
.Filters.Add "Excel Dosyalar", "*.xl*"
.FilterIndex = 2
Alttaki yerine üstteki gibi olursa kodlar sadece daha kullanışlı olur abey.
Kod:
.Filters.Add "All Files", "*.*"
.Filters.Add "Excel 2003", "*.xls"
.Filters.Add "Excel 2007", "*.xlsx"