Sql Tablo Oluşturma

askm

Destek Ekibi
Destek Ekibi
Katılım
4 Haziran 2005
Mesajlar
2,745
Excel Vers. ve Dili
2010-2016
Hayırlı akşamlar. Basit bir sql tablo oluşturup bunun içerisine veri eklemek istiyorum. Bunu vba yardımı ile yapma imkanı var mı? Örneğin sıra numarası, Adı, Soyadı, Adresi gibi basit bir tablo. Bu tablo access gibi sadece oluşturulan tabloyu başka bilgisayara gönderince çalışır mı?
Kısaca access den daha büyük bir veri tabanı gerekli ama basit yoldan ve taşınabilir olmasın istiyorum.
 

Haluk

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
12,406
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
Bahsettiğiniz konuyla pek ilgim yok ama, Access'in yeterli olamayacağı bir veri tabanını düşünemiyorum ....

Tabii, siz bilirsiniz.

Benim merak ettiğim; sorgulama sonucunda da çok fazla veri dönüyorsa, bunu Excel'de mi listeleyeceksiniz?

.
 

askm

Destek Ekibi
Destek Ekibi
Katılım
4 Haziran 2005
Mesajlar
2,745
Excel Vers. ve Dili
2010-2016
Accessin saklama kapasitesi daha düşük diye biliyorum. Bir de örneğin onbin kayıt girilince veri getirirken zorlanmalar başlıyor. Kayıt aşamasında da yavaşlama oluyor.
 

Zeki Gürsoy

Uzman
Uzman
Katılım
31 Aralık 2005
Mesajlar
4,374
Excel Vers. ve Dili
Office 365 (64 bit) - Türkçe
MS Access' ten daha fazla kayıt saklayabilecek ve kolay taşınabilir veritabanı olarak "Firebird Embedded" veya "Sqlite" önerebilirim.
Ancak bunlar 2 gb' dan fazla kayıt saklamanız gerektiğinde kullanmanız zaruri olur. Yoksa, Haluk Bey'in dediği gibi 2 gb aşmayacak veritabanı için MS Access yeterlidir.

Not: Veritabanında performans düşüklüğü tasarım hatasıyla ilgilidir.
 

askm

Destek Ekibi
Destek Ekibi
Katılım
4 Haziran 2005
Mesajlar
2,745
Excel Vers. ve Dili
2010-2016
Sadece veritabanı için değil merakım. Access de tablo oluşturma işlenmişti. Kaydetme, silme ve listeleme de işlendi. Sql ile tablo oluşturma ya da belirttiğim gibi bir çalışmaya rastlamadım hiç. Access harici bir veritabanı oluşturup buraya kayıt yapma listeleme silme yapılabilir mi. Asıl merakım bu.
 
Katılım
24 Nisan 2005
Mesajlar
3,680
Excel Vers. ve Dili
Office 2016 EN 64 Bit
Altın Üyelik Bitiş Tarihi
25/05/2022
Aşağıdaki kod yapısı ile kullanabilirsiniz. Ancak recordset olayında kaç satıra kadar destekliyor test etmedim.
SQL sorgusundaki kodu değiştirerek Database Create, INSERT, UPDATE, DELETE işlemleri yapabilirsiniz.

SQL öyle hemen taşınacak bir yapı değil. Başka bilgisayarda kurulmuş olmalı.
Excel dosyası ile beraber kurulum dosyalarını taşısanız bile kurulumu ayrıca gerekecektir.
taşınan bilgisayarda ODBC ayarlarını .reg dosyası ile otomatik yaptırabilirsiniz.
Tabi bu dosyayı oluşturmak için kullanıcının excel de sql server bilgilerini girmiş olması gerekiyor.

Kurulum sonrası veritabanı oluştur, tablo oluşturma işlemleri yapmanız gerekecek.
Bunların hepsini excel den SQL sorgusuna ekleyerek yapabilirsiniz.

VBA Reference da Microsoft Activex data object x.x library seçili olmalı.

Tüm işlerimlerde kullanıcının bilgisayarında yönetici yetkisine sahip olduğunu varsayıyorum.

Kod:
Sub listele()
    Dim conn As Object
    Dim RS As Object
    Dim data As Variant
   
    Set conn = CreateObject("ADODB.Connection")
    Set RS = CreateObject("ADODB.Recordset")
       
    connPath = "DSN=ODBCADI;Server=BILGISAYAR\SQLSERVERADI;;Initial Catalog=VERITABANIADI;Uid=sa;Pwd=sifresi;"
   
    conn.Open connPath
   
    Range("E3:F1000").ClearContents
   
    Sql = ""
    Sql = Sql + " SELECT [urun],[adet] FROM [VERITABANI].[dbo].[URUNTABLO] "
   
    Set RS = conn.Execute(Sql)
   
    If RS.State Then
      Col = 1
      'For Each Field In RS.Fields
      '    Cells(5, Col) = Field.Name
      '    Col = Col + 1
      'Next Field
      Cells(3, "E").CopyFromRecordset RS
      Set RS = Nothing
    End If
   
    Set conn = Nothing  
End Sub
 

askm

Destek Ekibi
Destek Ekibi
Katılım
4 Haziran 2005
Mesajlar
2,745
Excel Vers. ve Dili
2010-2016
Peki sql değil de mysql ile mümkün mü? Başka bir bilgisayara taşınma sırasında kurulum gerektirmeden sadece office kurulu olması ve dosyayı kopyalama ile yapılabilecek bir yapı mümkün mü?
 

Zeki Gürsoy

Uzman
Uzman
Katılım
31 Aralık 2005
Mesajlar
4,374
Excel Vers. ve Dili
Office 365 (64 bit) - Türkçe
Başka bir bilgisayara taşınma sırasında kurulum gerektirmeden sadece office kurulu olması ve dosyayı kopyalama ile yapılabilecek bir yapı mümkün mü?
Maalesef. Bir MS Access veritabanını bile yönetmek için muhtemelen sürücü yüklemesi gerekir. Yukarıdaki yöntemle taşınabilir veritabanı XML veya Text dosyası olabilir ki, hızlı ve büyük veritabanı için bunlar kullanılamaz. Zaten veritabanı değiller.

Peki sql değil de mysql ile mümkün mü?
SQL = Structure Query Language
MySql = Bir RDBMS (Relational Database Management System) türü. Yani Server/Client (sunucu/istemci) veritabanı sistemi.

Bu sorunuzdan veritabanı konusunda kavramsal bilginizin çok zayıf olduğu anlaşılıyor. Soruyu soran ile yanıtlayan kişi aynı frekansta konuşamayacağı için yardımlaşmak çok zor olacaktır.

Kolay gelsin...

.
 
Üst