Skip to main content

AccessTr.neT


Tabloya Yeni Alan Ekleme

Tabloya Yeni Alan Ekleme

#7
tür açılır kutusunda siz alan türlerini Türkçe almışsınız oysa İngilizceleri olmalıydı yada ilk sütunda İngilizceleri olurdu ve bu sütun gizlenirdi
2. sütunda ise Türkçeleri olurdu böyle ce biz türkçeleri görürdük ama işlem ingilizceleri üzerinden yürürdü
türü açılır kutusunun satır kaynağına aşağıdaki kodu yazıp dener misiniz
"Text";"Memo";"Long Integer";"Big Integer";"Date/Time";"Currency";"Yes/No";"OLE Object";"Hyperlink";"Attachment"
Not: dikkat etmeniz gereken diğer bir nokta da her alan için boyut belirlenebiliyor mu?
ve boyut belirlemezseniz ifade hatalı olacağından boyut kontrolünün de yapılması gerekiyor
Cevapla
#8
tablo adlarını alma
SELECT MSysObjects.Name FROM MSysObjects WHERE (((Left([Name],1))<>"~") AND ((Left([Name],4))<>"MSys") AND ((MSysObjects.Type) In (1,4,6)) AND ((Left([Name],2))<>"f_")) ORDER BY MSysObjects.Name; 
Not: burada alında olmayan f_ dosyaları da olduğundan devre dışı bırakmak için f_ ile başlayan dosyalar da elenmiştir o nedenle tablolarınıza f_ ile başlayan isimler vermeyin
yeni alan ekleme kodu
Dim fld As DAO.Field
Dim tdf As DAO.TableDef

TabloAdi = Me.tabloo

'Yeni Alan oluşturma
Set fld = New DAO.Field
fld.Name = Me.Adi
fld.Type = Me.Turu
If Len(Me.Boyutu & "") > 0 Then fld.Size = Me.Boyutu 'boyuta değer girilmemişse o özelliğe dokunmaz

CurrentDb.TableDefs(TabloAdi).Fields.Append fld
    Set tdf = Nothing
    Set fld = Nothing
bulabildiğim alan türlerini ekledim ama aynı türden olan alanlar arsındaki farkı tam olarak bilmiyorum
mesela text özelliki bir kaç alan var ama birinin diğerinden farkı nedir bilmiyorum
ayrıca bazı veri türleri accessin tüm sürümlerinde kullanılamıyor bunu da göz önünde bulundurmalısınız
dilerim işinize yarar iyi çalışmalar
Not: sadece formu kopyalamanız yeter formadaki cbAlan açılır kutusunu deneme amaçlı olarak alanın eklenip eklenmediğini kontrol etmek için eklemiştim silebilirsiniz ayrıca tabloo_Exit fonksiyonu ve eklediğim diğer tablolara da ihtiyacınız yok silinebilir
Not:Turu açılır kutusundaki 2. sütun verilerin dbText, dbMemo... yerine türkçe isimler verebilirsiniz kısa metin, uzun metin... gibi

verileri aldığım bağlantı aşağıda yeralmaktadır, incelemeniz yerinde olur
http://www.allenbrowne.com/ser-49.html#_ftn6
.rar TabloAdiAlanAdiTuru_hy.rar (Dosya Boyutu: 28,31 KB | İndirme Sayısı: 2)
Cevapla
#9
Sayın berduş İlgi ve alakanız için çok tşk ederim,
Siz örneğinizi ofis2019 da yapmışsınız,
ben ofis2010 kullandığım için maalesef açamadım,
koduda benim çalışmamda uyguladım maalesef çalıştıramadım.
Rica etsem örneğinizi ofis2010 formatında ekleyebilirmisiniz.

Turu metin kutusuna dbText yazdım olmadı, Text yazdım olmadı neden acaba?
Son Düzenleme: 29/10/2020, 21:59, Düzenleyen: ates2014.
Cevapla
#10
tablo adlarını OpenSchema yöntemiyle alma da eklendi 2sinden birini seçebilirsiniz
Private Sub ListTables()
Dim statement As String
Dim conn As ADODB.Connection
Dim rs As ADODB.Recordset
Dim fld As ADODB.Field

cbTabloAdiopenschema.RowSource = ""
Set rs = CurrentProject.Connection.OpenSchema(adSchemaTables, _
        Array(Empty, Empty, Empty, "Table"))
    Do While Not rs.EOF
        cbTabloAdiopenschema.AddItem rs!TABLE_NAME
    rs.MoveNext
    Loop
   
rs.Close

End Sub
aslında 2010da sorun çıkarmaması gerekirdi ama anlamadım o nedenle deneme amaçlı tablodaki alanları silip hem mdb hem de accdb formatlı olarak yeniden ekledim
.rar TabloAdiAlanAdiTuru_hy2.rar (Dosya Boyutu: 54,19 KB | İndirme Sayısı: 2)
Cevapla
#11
Çok çok çok teşekkür ederim berduş hocam,
bu işlemi bağlı tabloya nasıl yapabiliriz,
yani bağlı tablodaki tabloya nasıl alan ekleyebiliriz?
Elleriniz dert görmesin...
Cevapla
#12
1 - Bağlı tabloları göstermiyor mu?
2 - bağlı tabloları göstermesine rağmen alan eklemiyor mu?
Çalışmanızı ekleyin orada deneyelim
Cevapla

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

Yorum yapmak için üye olmanız gerekiyor

ya da
Task