PDA

View Full Version : سوال: ایجاد ستون با کد نویسی



IMANAZADI
شنبه 29 تیر 1392, 13:00 عصر
با سلام خدمت دوستان عزیز

چطوری میشه بصورت کد نویسی یک ستون به یک جدول اضافه کردو به تعداد ردیف های جدول ، در ستون ایجاد شده 0 گذاشت
ممنون میشم

Abbas Amiri
شنبه 29 تیر 1392, 16:34 عصر
با سلام خدمت دوستان عزیز

چطوری میشه بصورت کد نویسی یک ستون به یک جدول اضافه کردو به تعداد ردیف های جدول ، در ستون ایجاد شده 0 گذاشت
ممنون میشم

روال زیر با پارامترهای لازم به جدول شما فیلد اضافه میکند و در صورت درج پارامتر مقدار(fldValue) به فیلد مورد نظر آن مقدار را درج می کند.



Sub AddColumn2Table(tdfName As String, fldName As String, DataType As String, Optional fldValue)
Dim strSQL As String, db As Database
On Error GoTo ErrH1

Set db = CurrentDb()
strSQL = "ALTER TABLE " & tdfName & " ADD COLUMN " & fldName & " " & DataType
db.Execute strSQL, dbFailOnError
If IsMissing(fldValue) Then Exit Sub
On Error GoTo ErrH2
strSQL = "UPDATE " & tdfName & " SET " & fldName & "="
If UCase(DataType) Like "CHAR*" Or UCase(DataType) Like "TEXT*" Then
strSQL = strSQL & "'" & fldValue & "'"
Else
strSQL = strSQL & fldValue
End If
db.Execute strSQL, dbFailOnError
Exit Sub
ErrH1:
MsgBox "خطا در تعریف فیلد جدید : " & "Error " & Err.Number & vbCr & vbCr & _
Err.Description
Exit Sub
ErrH2:
MsgBox "خطا در مقداردهی به فیلد : " & "Error " & Err.Number & vbCr & vbCr & _
Err.Description
Exit Sub

End Sub

توجه داشته باشید که چنانچه به یک فیلد عددی مقدار رشته ای بدهید ، پس ازایجا فیلد در هنگام درج مقدار ، به علت ایجاد خطا پیغام خطا نمایش داده خواهد شد.

لیست انواع داده در SQL Access :

IMANAZADI
پنج شنبه 03 مرداد 1392, 12:43 عصر
دوست گرامی این که باز شده همون دستور update
خودم با آپدیت میتونستم میخواستم ببینم با دستور alter چطوری میشه مقدار پیش فرض داد

Abbas Amiri
پنج شنبه 03 مرداد 1392, 12:50 عصر
دوست گرامی این که باز شده همون دستور update
خودم با آپدیت میتونستم میخواستم ببینم با دستور alter چطوری میشه مقدار پیش فرض داد

با دستورات DDL که با ساختار جداول سروکار دارند نمی توانید در رکوردهای ایجاد شده تغییری اعمال کنید و شما چاره ای جز استفاده از دستور UPDATE ندارید . چنانچه Defualt Value هم برای فیلدها درنظر بگیرید ، به رکوردهای آتی اعمال خواهد شد.

IMANAZADI
جمعه 04 مرداد 1392, 06:25 صبح
دوست گرامی ممنون از راهنماییت
ولی من میخوام زمانی که یک ستون ایجاد میشه مقدار پیش فرض 0 بگیره
چون بعدا مقدار دهی میشه و مورد نداره واسه کلیه رکوردها لحاظ بشه
ولی من تو دستورات اس کیو ال و اکسس این دستور رو دیدم ولی جواب نمیده
شکل کلی دستور بدین صورت بود


CONSTRAINT name {PRIMARY KEY (primary1[, primary2 [, …]]) | UNIQUE (unique1[, unique2 [, …]]) | NOT NULL (notnull1[, notnull2 [, …]]) | FOREIGN KEY [NO INDEX] (ref1[, ref2 [, …]]) REFERENCES foreigntable [(foreignfield1 [, foreignfield2 [, …]])] [ON UPDATE CASCADE | SET NULL] [ON DELETE CASCADE | SET NULL]}

Abbas Amiri
جمعه 04 مرداد 1392, 10:45 صبح
دوست گرامی ممنون از راهنماییت
ولی من میخوام زمانی که یک ستون ایجاد میشه مقدار پیش فرض 0 بگیره
چون بعدا مقدار دهی میشه و مورد نداره واسه کلیه رکوردها لحاظ بشه
ولی من تو دستورات اس کیو ال و اکسس این دستور رو دیدم ولی جواب نمیده
شکل کلی دستور بدین صورت بود


CONSTRAINT name {PRIMARY KEY (primary1[, primary2 [, …]]) | UNIQUE (unique1[, unique2 [, …]]) | NOT NULL (notnull1[, notnull2 [, …]]) | FOREIGN KEY [NO INDEX] (ref1[, ref2 [, …]]) REFERENCES foreigntable [(foreignfield1 [, foreignfield2 [, …]])] [ON UPDATE CASCADE | SET NULL] [ON DELETE CASCADE | SET NULL]}



از الگوی مطابق مثال زیر استفاده کنید:


CurrentProject.Connection.Execute "ALTER TABLE Table1 ADD COLUMN [Field2] INTEGER DEFAULT '0';"