ورود

View Full Version : سوال: بوجود اوردن یک فیلد جدید به جدول از طریق فرم



alijoon2000
چهارشنبه 04 شهریور 1388, 23:41 عصر
با سلام
من می خوام ببینم میشه در اکسس از طریق فرم یک فیلد به جدول اضافه کنیم؟
یعنی یک کلید بسازیم که با زدن این کلید بتونیم یک فیلد رشته ای به جدول اضافه کنیم
تو سوالات موجود گشتم اما اونی که می خواستم نبود لطفا اگر سوالم تکراری یا تو سایت جوابش هست لینکشو برام بزارید
یه سوال دیگه می خوام بدونم اگر بخوام یک فرم وقتی باز میشه به حالت ADD مد باز بشه چه کدی باید براش بنویسم
ممنون
یا حق

smderfan
پنج شنبه 05 شهریور 1388, 01:59 صبح
سلام
جهت ایجاد فیلد می تونی از تاپیک زیر استفاده کنید.

http://www.barnamenevis.org/forum/showthread.php?t=169077&highlight=%D8%A7%DB%8C%D8%AC%D8%A7%D8%AF+%D9%81%DB %8C%D9%84%D8%AF
و یا می تونید از کد نمونه زیر استفاده کنید.

Creating Local Tables
The following example creates a new local table named "Contacts."
DAO
Sub DAOCreateTable()

Dim db As DAO.Database
Dim tbl As DAO.TableDef

' Open the database
Set db = DBEngine.OpenDatabase(".\NorthWind.mdb")

' Create a new TableDef object.
Set tbl = db.CreateTableDef("Contacts")

With tbl
' Create fields and append them to the new TableDef object.
' This must be done before appending the TableDef object to
' the TableDefs collection of the Database.
.Fields.Append .CreateField("ContactName", dbText)
.Fields.Append .CreateField("ContactTitle", dbText)
.Fields.Append .CreateField("Phone", dbText)
.Fields.Append .CreateField("Notes", dbMemo)
.Fields("Notes").Required = False
End With

' Add the new table to the database.
db.TableDefs.Append tbl

db.Close

End Sub

و یا :

Sub DAOCreateAutoIncrColumn()

Dim db As DAO.Database
Dim tbl As DAO.TableDef
Dim fld As DAO.Field

' Open the database
Set db = DBEngine.OpenDatabase(".\NorthWind.mdb")

' Get the Contacts table
Set tbl = db.TableDefs("Contacts")

' Create the new auto increment column
Set fld = tbl.CreateField("ContactId", dbLong)
fld.Attributes = dbAutoIncrField

' Add the new table to the database.
tbl.Fields.Append fld

db.Close

End Sub

و یا :

Sub ADOCreateRecordset()

Dim rst As New ADODB.Recordset

rst.CursorLocation = adUseClient

' Add Some Fields
rst.Fields.Append "dbkey", adInteger
rst.Fields.Append "field1", adVarChar, 40, adFldIsNullable
rst.Fields.Append "field2", adDate

' Create the Recordset
rst.Open , , adOpenStatic, adLockBatchOptimistic

' Add Some Rows
rst.AddNew Array("dbkey", "field1", "field2"), _
Array(1, "string1", Date)
rst.AddNew Array("dbkey", "field1", "field2"), _
Array(2, "string2", #1/6/1992#)

' Look at the values -
' a value of 1 for status column = newly record
rst.MoveFirst
Debug.Print "Status", "dbkey", "field1", "field2"
Do Until rst.EOF
Debug.Print rst.Status, rst!dbkey, rst!field1, rst!field2
rst.MoveNext
Loop

' Commit the rows without ActiveConnection
' set resets the status bits
rst.UpdateBatch adAffectAll

' Change the first of the two rows
rst.MoveFirst
rst!field1 = "changed"

' Now look at the status, first row shows 2 (modified row),
' second shows 8 (no modifications)
' Also note that the OriginalValue property shows the value
' before the modification
rst.MoveFirst
Do Until rst.EOF
Debug.Print
Debug.Print rst.Status, rst!dbkey, rst!field1, rst!field2
Debug.Print , rst!dbkey.OriginalValue, _
rst!field1.OriginalValue, rst!field2.OriginalValue
rst.MoveNext
Loop

End Sub