Excel Den Hücre Verisi Alma ?

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
16/01/2020, 17:33

Myalim

(16/01/2020, 17:30)berduş yazdı: üzerinde çalışabileceğimiz bir şablon olması çözüm bulmayı kolaylaştırır
gerçek veriler olmasına gerek yok ama çalışmanızı anlayabilmemiz için önemli
resimden anladığım sadece 4 verinin olduğu bir excelden accesse aktarmak.
doğru mu anlamışım sayfada sadece 4 veri mi var?
Aynen hocam Excel hücrelerini Tabloya yazdırmak, bu tür basit bir proje üzerinde çalışma yapılabilir efendim
16/01/2020, 18:32

ferdiqq

(16/01/2020, 16:27)Myalim yazdı:
(16/01/2020, 15:49)ferdiqq yazdı: https://accesstr.net/konu-excelden-veri-...t=excelden



ÇOK GÜZEL BİR ÖRNEK İKİNCİ VERDİĞİ HATALAR GİDERİLDİ YAZAN ÖRNEĞİ İNDİRİP BAKABİLİRSEN İŞİNE YARAYABİLİR.
Hacam bu örneği denedim ama maalesef istediğim bu değil , buton kod yazarak excelden aktarım yapıyorum ama esas istediğim, Excel belgesindeki istediğim hücreleri çözümleyerek tabloda istediğim alana yazdırmak. yani A1 Hücresi- Tablo da kimlikNo alanına yazsın. Yani  Excel de veri sayfası gibi düzenlediğim de sıkıntı yok ama, orjinal halinde veriler farklı farklı hücrelerde.
  
Kardeşim tablondaki alan isimlerinin aynısı olacak şekilde. (kimlik id grek yok)  örneğin.   id, ad, soyad, tel vs.   ..    Excelde de en başa yap ama id için yapma

excelde ad,soyad,te vs. olacak (id) hariç.   verilerin sıralamalırını aynı hale getir . aktarmada sorun çıkmaz. sayısal verilerde giriş maskesi varsa onada dikkat etmek gerekir.

bu şekilde alması gerekiyor..
 
eski verilerin üzerine yazıyor.  komple güncellesin diyorsan mesela exceli webden alıp üzerinde düzenleme yapıp sadece bu verilen acceste olmasını istersen aktarma butonu önce  runsql.delele sorgusu ile eskiyi siler yenisini eklemiş olursun. şişme yapmaz.  UZMAN HOCALARIMDAN KENDİLERİ VARKEN CEVAP YAZDIĞIM İÇİN KUSURUMUZA BAKMAMALARINI RİCA EDİYORUM..
16/01/2020, 18:54

berduş

resimdeki isimlendirmeleri kullandım, tüm alanları metin olarak ayarladım
dilerim işinize yarar
iyi çalışmalar
Not : Çalışmanıza referans eklemeniz gerekebilir

txtDosyaAdres = "D:\AKTAR.xlsx" ' Buraya dosya adresi ve adı yazılacak
    Dim con As ADODB.Connection
    Dim rs As ADODB.Recordset
    Dim sConn As String, sConn2 As String
    Dim degerler, sSql As String
   
    degerler = ""

sSql = "select * from [Sayfa1$]" '
    sConn = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & txtDosyaAdres
    sConn2 = ";Extended Properties=""Excel 12.0 Xml;HDR=No"";"
   
Set con = New ADODB.Connection
    con.Open sConn & sConn2

Set rs = New ADODB.Recordset
    rs.CursorLocation = adUseClient
    rs.Open sSql, con, adOpenKeyset 'rather use this so RecordCount works
   
    If rs.RecordCount = 0 Then Exit Sub
    rs.MoveLast
    rs.MoveFirst
    Do Until rs.EOF = True
          degerler = degerler & ", '" & rs.Fields(0) & "'"
    rs.MoveNext
    Loop
   
    degerler = Mid(degerler, 2)
   
sSql = " insert into [Veriler1] (kimlikNo, ad, soyAd, babaAd) " & _
                      " values (" & degerler & ")"
    CurrentDb.Execute sSql
    Set rs = Nothing
16/01/2020, 19:18

Myalim

(16/01/2020, 18:32)ferdiqq yazdı:
(16/01/2020, 16:27)Myalim yazdı:
(16/01/2020, 15:49)ferdiqq yazdı: https://accesstr.net/konu-excelden-veri-...t=excelden



ÇOK GÜZEL BİR ÖRNEK İKİNCİ VERDİĞİ HATALAR GİDERİLDİ YAZAN ÖRNEĞİ İNDİRİP BAKABİLİRSEN İŞİNE YARAYABİLİR.
Hacam bu örneği denedim ama maalesef istediğim bu değil , buton kod yazarak excelden aktarım yapıyorum ama esas istediğim, Excel belgesindeki istediğim hücreleri çözümleyerek tabloda istediğim alana yazdırmak. yani A1 Hücresi- Tablo da kimlikNo alanına yazsın. Yani  Excel de veri sayfası gibi düzenlediğim de sıkıntı yok ama, orjinal halinde veriler farklı farklı hücrelerde.
  
Kardeşim tablondaki alan isimlerinin aynısı olacak şekilde. (kimlik id grek yok)  örneğin.   id, ad, soyad, tel vs.   ..    Excelde de en başa yap ama id için yapma

excelde ad,soyad,te vs. olacak (id) hariç.   verilerin sıralamalırını aynı hale getir . aktarmada sorun çıkmaz. sayısal verilerde giriş maskesi varsa onada dikkat etmek gerekir.

bu şekilde alması gerekiyor..
 
eski verilerin üzerine yazıyor.  komple güncellesin diyorsan mesela exceli webden alıp üzerinde düzenleme yapıp sadece bu verilen acceste olmasını istersen aktarma butonu önce  runsql.delele sorgusu ile eskiyi siler yenisini eklemiş olursun. şişme yapmaz.  UZMAN HOCALARIMDAN KENDİLERİ VARKEN CEVAP YAZDIĞIM İÇİN KUSURUMUZA BAKMAMALARINI RİCA EDİYORUM..
biliyorum bu yöntemi fakat Excel sayfamda oynama yapmama lazım.teşekkürler

(16/01/2020, 18:54)berduş yazdı: resimdeki isimlendirmeleri kullandım, tüm alanları metin olarak ayarladım
dilerim işinize yarar
iyi çalışmalar
Not : Çalışmanıza referans eklemeniz gerekebilir

txtDosyaAdres = "D:\AKTAR.xlsx" ' Buraya dosya adresi ve adı yazılacak
    Dim con As ADODB.Connection
    Dim rs As ADODB.Recordset
    Dim sConn As String, sConn2 As String
    Dim degerler, sSql As String
   
    degerler = ""

sSql = "select * from [Sayfa1$]" '
    sConn = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & txtDosyaAdres
    sConn2 = ";Extended Properties=""Excel 12.0 Xml;HDR=No"";"
   
Set con = New ADODB.Connection
    con.Open sConn & sConn2

Set rs = New ADODB.Recordset
    rs.CursorLocation = adUseClient
    rs.Open sSql, con, adOpenKeyset 'rather use this so RecordCount works
   
    If rs.RecordCount = 0 Then Exit Sub
    rs.MoveLast
    rs.MoveFirst
    Do Until rs.EOF = True
          degerler = degerler & ", '" & rs.Fields(0) & "'"
    rs.MoveNext
    Loop
   
    degerler = Mid(degerler, 2)
   
sSql = " insert into [Veriler1] (kimlikNo, ad, soyAd, babaAd) " & _
                      " values (" & degerler & ")"
    CurrentDb.Execute sSql
    Set rs = Nothing
En kısa zamanda deneyip geri dönüş yapacağım Teşekkürler.

(16/01/2020, 18:54)berduş yazdı: resimdeki isimlendirmeleri kullandım, tüm alanları metin olarak ayarladım
dilerim işinize yarar
iyi çalışmalar
Not : Çalışmanıza referans eklemeniz gerekebilir

txtDosyaAdres = "D:\AKTAR.xlsx" ' Buraya dosya adresi ve adı yazılacak
    Dim con As ADODB.Connection
    Dim rs As ADODB.Recordset
    Dim sConn As String, sConn2 As String
    Dim degerler, sSql As String
   
    degerler = ""

sSql = "select * from [Sayfa1$]" '
    sConn = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & txtDosyaAdres
    sConn2 = ";Extended Properties=""Excel 12.0 Xml;HDR=No"";"
   
Set con = New ADODB.Connection
    con.Open sConn & sConn2

Set rs = New ADODB.Recordset
    rs.CursorLocation = adUseClient
    rs.Open sSql, con, adOpenKeyset 'rather use this so RecordCount works
   
    If rs.RecordCount = 0 Then Exit Sub
    rs.MoveLast
    rs.MoveFirst
    Do Until rs.EOF = True
          degerler = degerler & ", '" & rs.Fields(0) & "'"
    rs.MoveNext
    Loop
   
    degerler = Mid(degerler, 2)
   
sSql = " insert into [Veriler1] (kimlikNo, ad, soyAd, babaAd) " & _
                      " values (" & degerler & ")"
    CurrentDb.Execute sSql
    Set rs = Nothing
Size artık Access ÜSTADI demek istiyorum,hem de tam istediğim gibi olu hemde neffis oldu.çok çok teşekkür ediyorum.
16/01/2020, 19:35

feraz

(16/01/2020, 18:54)berduş yazdı: resimdeki isimlendirmeleri kullandım, tüm alanları metin olarak ayarladım
dilerim işinize yarar
iyi çalışmalar
Not : Çalışmanıza referans eklemeniz gerekebilir

txtDosyaAdres = "D:\AKTAR.xlsx" ' Buraya dosya adresi ve adı yazılacak
    Dim con As ADODB.Connection
    Dim rs As ADODB.Recordset
    Dim sConn As String, sConn2 As String
    Dim degerler, sSql As String
   
    degerler = ""

sSql = "select * from [Sayfa1$]" '
    sConn = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & txtDosyaAdres
    sConn2 = ";Extended Properties=""Excel 12.0 Xml;HDR=No"";"
   
Set con = New ADODB.Connection
    con.Open sConn & sConn2

Set rs = New ADODB.Recordset
    rs.CursorLocation = adUseClient
    rs.Open sSql, con, adOpenKeyset 'rather use this so RecordCount works
   
    If rs.RecordCount = 0 Then Exit Sub
    rs.MoveLast
    rs.MoveFirst
    Do Until rs.EOF = True
          degerler = degerler & ", '" & rs.Fields(0) & "'"
    rs.MoveNext
    Loop
   
    degerler = Mid(degerler, 2)
   
sSql = " insert into [Veriler1] (kimlikNo, ad, soyAd, babaAd) " & _
                      " values (" & degerler & ")"
    CurrentDb.Execute sSql
    Set rs = Nothing

Merhaba.Telefondan kodları incelediğim kadarıyla alttaki no yerine yes olması gerekmiyor mu?

HDR=No

Birde reference eklememek için new yerine alttaki gibi olmalı.
Kodları kafadan yazdığım için hata olabilir.
Ve en sonda con.close ile kapatılmalı    

Dim con as object
Dim rs as object

Set con= createobject("Adodb.Connection")
Set rs = createobject("adodb.recordset")
16/01/2020, 19:39

Myalim

(16/01/2020, 19:35)feraz yazdı:
(16/01/2020, 18:54)berduş yazdı: resimdeki isimlendirmeleri kullandım, tüm alanları metin olarak ayarladım
dilerim işinize yarar
iyi çalışmalar
Not : Çalışmanıza referans eklemeniz gerekebilir

txtDosyaAdres = "D:\AKTAR.xlsx" ' Buraya dosya adresi ve adı yazılacak
    Dim con As ADODB.Connection
    Dim rs As ADODB.Recordset
    Dim sConn As String, sConn2 As String
    Dim degerler, sSql As String
   
    degerler = ""

sSql = "select * from [Sayfa1$]" '
    sConn = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & txtDosyaAdres
    sConn2 = ";Extended Properties=""Excel 12.0 Xml;HDR=No"";"
   
Set con = New ADODB.Connection
    con.Open sConn & sConn2

Set rs = New ADODB.Recordset
    rs.CursorLocation = adUseClient
    rs.Open sSql, con, adOpenKeyset 'rather use this so RecordCount works
   
    If rs.RecordCount = 0 Then Exit Sub
    rs.MoveLast
    rs.MoveFirst
    Do Until rs.EOF = True
          degerler = degerler & ", '" & rs.Fields(0) & "'"
    rs.MoveNext
    Loop
   
    degerler = Mid(degerler, 2)
   
sSql = " insert into [Veriler1] (kimlikNo, ad, soyAd, babaAd) " & _
                      " values (" & degerler & ")"
    CurrentDb.Execute sSql
    Set rs = Nothing

Merhaba.Telefondan kodları incelediğim kadarıyla alttaki no yerine yes olması gerekmiyor mu?

HDR=No

Birde reference eklememek için new yerine alttaki gibi olmalı.
Kodları kafadan yazdığım için hata olabilir.
Ve en sonda con.close ile kapatılmalı    

Dim con as object
Dim rs as object

Set con= createobject("Adodb.Connection")
Set rs = createobject("adodb.recordset")
Teşekkürler ilginiz için "Berduş" hocamın kodları işimi çözdü.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15