Tabloya Yeni Alan Ekleme

1 2 3 4 5 6
30/10/2020, 12:41

berduş

tabloyu oluşturdum şu an diğer kodlarla ilgileniyorum
30/10/2020, 13:39

berduş

ekle butonunun kodu
burda dikkat edilmesi gereken 2 nokta var
1 - Turu açılır kutusu tür tablosundaki ilk 3 sütunu mutlaka almalı (OtoId,TurId ve TurAd) ilk 2 sütun gizlenebilir
hatta tablodan son 2 sütunu silebilirsiniz, son 2 sütun (SQLTerim ve DAOTerim) farklı yöntemler için gerekli olabilir diye eklemiştim
mesela SQLTerim kısmında kullanılan terimler "alter tablo" gibi sorgu ile alan ekleme komutlarında kullanıldığı için eklendi
2 - TblAlanTur tablosundaki kaydın verisini değiştirirken dikkatli olmalısınız
3. sütunda yer alan otomatik sayı verisi ile Hyperlink verisi değişirse
'hy otomatik sayı ve köprü için ek özellik_______________________________________
If Me.Turu.Column(2) = "Otomatik Sayı" Then fld.Attributes = 16 'dbAutoIncrField
If Me.Turu.Column(2) = "Hyperlink" Then fld.Attributes = 32768 'dbHyperlinkField
'________________________________________________________________________________
yukardaki kodlarda yer alan "Otomatik Sayı" ve  "Hyperlink" de aynı şekilde değişmeli
strTable = Me.tabloo
If Len(strTable & "") < 1 Then Exit Sub

Dim db As DAO.Database
Dim table1 As DAO.TableDef
Dim fld As DAO.Field
Dim tdf As DAO.TableDef


nFieldType = Me.Turu
' Create the new Table Def object
Set table1 = New DAO.TableDef

' Name the Table
table1.Name = strTable

' Create the new Field
Set fld = New DAO.Field
fld.Name = Me.Adi
fld.Type = Me.Turu.Column(1) 'DataTypeEnum.dbText
If Len(Me.Boyutu & "") > 0 Then fld.Size = Me.Boyutu
'hy otomatik sayı ve köprü için ek özellik_______________________________________
If Me.Turu.Column(2) = "Otomatik Sayı" Then fld.Attributes = 16 'dbAutoIncrField
If Me.Turu.Column(2) = "Hyperlink" Then fld.Attributes = 32768 'dbHyperlinkField
'________________________________________________________________________________
'hy yabancı/bağlı tablo kontrolü____________________________
    stPath = CurrentDb.TableDefs(strTable).Connect
If Len(stPath & "") > 0 Then
    TabloAdresi = Right(stPath, Len(stPath) - (InStr(1, stPath, "DATABASE=") + 8))
    Set db = OpenDatabase(TabloAdresi) 'CurrentDb
Else
    Set db = CurrentDb
End If
'____________________________________________________________
db.TableDefs(strTable).Fields.Append fld
son not emin değilim ama galiba 2 tane otomatik sayı alanı desteklenmiyor o nedenle aynı tabloya 2. defa otomatik alan eklemeye kalkarsanız sorun çıkabilir
iyi çalışmalar
30/10/2020, 15:40

ates2014

son gönderdiğiniz belgede aşağıdaki hatayı veriyor

(30/10/2020, 15:40)ates2014 yazdı: son gönderdiğiniz belgede aşağıdaki hatayı veriyor
[img]
[/img]
30/10/2020, 15:49

berduş

formdaki alan türü açılır kutusu değerini bu tablodan aldığı için tablo kullanımda oluyor
yani siz açık olan bir tabloya aalan eklemeye çalışıyorsunuz
kullanımda olan tabloların yapısını değiştiremezsiniz
mesela form açıkken yerel tabloların 2sini de tasarım modunda açmaya çalışın
açılır kutunun kaynağı olan tablo açılmazken diğeri açılr büyük bir ihtimalle
30/10/2020, 15:52

ates2014

Çok özür dilerim berduş hocam,
yerel tabloya kayıt yapmaya çalışmışım.
Yerel tabloların açılır kutuda görünmemmesi olayını yapabilirmiyiz?
30/10/2020, 15:58

berduş

tabloo açılır kutusunun satır kaynağını açıp oradan düzenleyebilirsiniz
1 2 3 4 5 6