Skip to main content

AccessTr.neT


Normal Tabloyu Bağlı Excel Tablosuna Çevirmek?

Normal Tabloyu Bağlı Excel Tablosuna Çevirmek?

#13
(27/08/2022, 03:08)aydin5353 yazdı: Hocalarım her ikinizde verdiği cevaplar çok değerli ve mantıklı. Benim istediğim aslında oluşturulabilir basit bir Sql server klasörü idi. tabi bunu kurum bilgisayarlarına kuramadığım için server olarak Excel tablolarının bulunduğu bir klasör yapıp, ağ üzerinden Access programıyla bağlanıp sorgu, kayıt yada güncelleştirme yapabilmekti. 

Access database üzerinde formlarda bağlantı için ağ kodlarını yazdığım için databaseyi hangi bilgisayara atarsam atayım server bilgisayarındaki dosyalara müdahale yetkim bulunduğu için hertürlü işlemi yapabilecektim. 

Ben evde yaklaşık 10 günlük Access dosyamda iyileştirme, yeni formlar yapma, programlarda olduğu gibi V1. V2. V3. Çıktı diyebilmem için bunu sordum. Örneğin 10 gün evde "yeni tasarım, eklemeler vb" uğraşırken o esnada iş yerinde önceki database çalışmaya ve formlardan kayıt yapmaya devam edebilecekti. 

Ama sonuç olarak ikilemde kaldım. Her ikinizin de cevapları Access üzerinden yürümem hususunda. Ama şunu söyleyeyim hergün işten usb' ye Access i alıp evde gece ne yapabilirsem yapıyorum, sonraki gün gidip tekrardan işte dosyayı değiştiriyorum. Çünkü "günlük kayıtları sonradan tablolardan aktarmak daha da beni yorar, arada hata yaparım diye korkuyorum" sebebiyle Access üzerinden işlemleri yapmaya karar verdim. Teşekkürler değerli cevaplarınız için.

Backend yapınızda değişiklik yapmadığınız sürece frontend üzerinde istediğiniz çalışmayı yapıp daha sonra güncelleyebilir ve tablolara bağlayabilirsiniz evham edilecek bir yan yok. Veritabanı planlama ve uygulama projelerinde 4 aşama vardır:
  1. Analiz,
  2. Mimari
    • Database Mimarisi
    • Algoritma Tasarımı
  3. Kodlama
  4. Test ve canlıya geçiş.

Database mimarisi bu sebeple projenin %30'unu teşkil eder tek başına. Backendde sürekli bir değişiklik yapılması doğru uygulama olmadığından önceden planlama ve geliştirmelerin neler olabileceği öngörüsü ile daha start aşamasında buna uygun mimarinin ortaya konması önem arz eder. Backendde değişikliğe gitmediğiniz sürece frontendde yapacağınız değişiklikler herhangi bir sorun teşkil etmeden ve veri kaybına uğramadan sisteme entegre edilebilir.
Cevapla
#14
Yabancı sitelerden de araştırdım biraz. Tablolarda onlar Vba kodu olmadan sorgu üzerinden bağlı Excel dosyalarına müdahale edebiliyorlar. Tabi silme işlemini yapamadılar. Bende kendimce bir örnek ortaya koydum. Ancak Access' teki otomatik sayı değişkenini atayamadım. O konuda bi çözüm bulabilirsem alternatif olarak yapılabilecek bir çalışmam olacak diye düşünüyorum. Bağlantıyı ekte koyduğum dosyada uyguladım.

Berduş hocamın 1. sayfada paylaştığı kodları düğmeye ekledim ancak hata verdi yada söz dizimi hatası var deyip formları açmadı. Bu sebeple farklı bir yöntem izledim.
.rar ANA MAKİNA.rar (Dosya Boyutu: 44,83 KB | İndirme Sayısı: 1)
Cevapla
#15
1 - siz sub/yordamsub/yordam altına yazmışsınız
Kod:
Private Sub Komut33_Click()
Sub XLBagla()

yordam bağımsız olarak modüle eklenip
diğer yordamdan çağrılır
Komut33_Click olayını aşağıdaki gibi düzenleyip dener misiniz?
doğrudan çalışmanızdaki örneğe göre düzenledim
isterseni dosya yolu_Adı ve sayfa adı metin kutularından alınabilir
kitap ve sayfa adı istenirse formdan da alınabilir
Private Sub Komut33_Click()

Dim tdf As DAO.TableDef

Dim strBaglanti As String
Dim AccAd As String
Dim ExlAd As String
Dim strKey As String
Dim DatabaseName As String:

' Bağlantıyı kur
strXlYol = CurrentProject.Path & "\abcde$.xlsx"
strBaglanti = "Excel 12.0 Xml;HDR=No;IMEX=0;ACCDB=No;DATABASE=" & strXlYol


ExlAd = "abcde$" ' bağlanacak tablonun exceldeki adı, sayfa adının sonuna $ eklenerek yazılır
AccAd = "abcde" ' bağlanacak tablonun accessteki adı

'aşağıdaki blok tablo varsa siler
On Error Resume Next
DoCmd.RunSQL "drop table " & AccAd
RefreshDatabaseWindow
On Error GoTo 0

Set tdf = CurrentDb.CreateTableDef(AccAd)
tdf.Connect = strBaglanti
tdf.SourceTableName = ExlAd

CurrentDb.TableDefs.Append tdf ' tablo accesse eklenir

On Error GoTo 0
End Sub
Cevapla
#16
Dediğiniz gibi yaptım. Tablolarda da değişiklik artık yapabiliyorum. Ama maalesefki birincil anahtar oluşturulamadığı için düzen koyamadım. Numaralandırma elle yapılabilir tabi ama bu da hataya sebebiyet verebilir. her ikisini de + ve - leriyle karşılaştırdım. Access veritabanı kullanmak daha mantıklı gibi duruyor bu haliyle.
Cevapla

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

Yorum yapmak için üye olmanız gerekiyor

ya da