می خواهیم با زدن دکمه ای رکوردی به دیتابیس ما افزوده شود و محتوای یک سری تکست باکس به عنوان ستونهای تیبل ما درج شود.کدش این می شود:
کد:Private Sub Command1_Click() ' add a new entry to our table. With Adodc1.Recordset .AddNew !ID = Text1.Text !Field1 = Text2.Text !Field2 = Text3.Text !Field3 = Text4.Text .Update .Requery End With Adodc1.Refresh End Sub
البته من زیاد کار نکردم تا متوجه اشکالات احتمالی بشوم ولی درست کار می کرد و دیتابیس ما در درایو سی رکورد به تیبل اش اضافه میشد.
فراموش نکنید که در تکست باکس ها مقدار درست وارد کنید. مثلا اگر نوع ستون عددی است رشته وارد نکنید.
omidak گفت:سلام:
از ToolsBox 1 Object Data بزار تویه Form ات
بعد 1 تویه Properties اش اول Connect ات رو انتخاب کن بعد DataBaseName و بعد تویه RecordSource اون Table مورد نظر رو بده... بعد خیلی راحت هر Object ای رو که خواستی میتونی از طریق DataSource و DataField بهش وصل کنی...
موفق باشی
saman_sweden گفت:در حالت كلي بگم شما بايد ديتا بيستان را تو اكسس بسازيد و در واقع تمام كارها با اكسس شروع ميشه وتمام ميشه اون برنامه ويژوال بيسيك كه ساخته ايد و يا ميسازيد در واقع بعنوان پوسته برنامه ميشود و كار خاصي انجام نخواهد داد
shakiba گفت:درسته
اكسس تمام اطلاعاتي كه از فرم وارد ميشه را ذخيره ميكنه
منم در اكسس يه جدول ساختم و اون فيلهايي كه ميخواستم را قرار دادم كه بعد از وي بي اون باكس ها را به فبلدهاي جدول اكسس كانكت كنم.
saman_sweden گفت:من عادت ندارم به سوالات وب پاسخ دهم براي اينكه وقت گير است در هر حال اين كد هاي زير كارتون را راه مي اندازه
براي ذخيره يه فايل و يا كانت به فايل از كد زير بهره بگيريد
کد:Private Sub cmdBrowse_Click() ' Set CancelError is True CommonDialog2.CancelError = True On Error GoTo ErrHandler ' Set flags CommonDialog2.Flags = cdlOFNHideReadOnly ' Set filters CommonDialog2.Filter = "Microsoft Access Database (*.mdb)|*.mdb|All Files (*.*)|*.*" ' Specify default filter CommonDialog2.FilterIndex = 1 ' Display the Open dialog box CommonDialog2.ShowOpen ' Display name of selected file dbFileName = CommonDialog2.FileName display cmdTable.Enabled = True cmdField.Enabled = True cmdAutoId.Enabled = True List1.Selected(0) = True List1.ListIndex = 0 Exit Sub ErrHandler: 'User pressed the Cancel button Exit Sub End Sub Public Sub display() Set db = OpenDatabase(dbFileName) ' Display the attributes of the Northwind database's ' tables. List1.Clear 'MsgBox "Attributes of tables in " & .Name & ":" For Each tdf In db.TableDefs If Not tdf.Name Like "MSys*" Then List1.AddItem (tdf.Name) Else 'MsgBox tdf.Name & "is System Table" End If Next tdf End Sub Private Sub cmdField_Click() Dim tIndex As Integer ' Display the attributes of a TableDef object's ' fields. List2.Clear For Each tdf In db.TableDefs If tdf.Name Like List1.Text Then For Each fld In db.TableDefs(tIndex).Fields List2.AddItem fld.Name Next fld End If tIndex = tIndex + 1 Next tdf 'List2.Selected = 0 List2.ListIndex = 0 End Sub Private Sub cmdTable_Click() Dim tIndex1 As Integer ' Count the attributes of a TableDef object's ' fields. iFieldCount = 0 For Each tdf In db.TableDefs If tdf.Name Like List1.Text Then For Each fld In db.TableDefs(tIndex1).Fields iFieldCount = iFieldCount + 1 Next fld End If tIndex1 = tIndex1 + 1 Next tdf rsFileName = List1.Text frmTable.Show End Sub
اينم فراخواني ديتابيس از داخل load بصورت اتومات
کد:Public Sub Form_Load() ' By making it public makes it easier to refresh Set dbConn = New Connection ' Prepares the ' Connection dbConn.CursorLocation = adUseClient dbConn.Open "PROVIDER=Microsoft.Jet.OLEDB.3.51;Data Source = Database.mdb;" ' Enter the database name. This sets the db and ' uses the jet database engine to connect to the 'db Set recSet = New Recordset 'sets the recordset recSet.Open "Select * from Tables Order by Field ", dbConn, adOpenStatic, adLockOptimistic 'sql connecting recordset, and sets the sort by 'the field name you enter. 'Also NOTE: for more control replace the wildcard ' (*) with fieldName1, fieldName2, fieldName3....... ' For the other options you replace order bf field ' with where field = "string", where field in "string", ' or group by "string" * Where string = the requirement you want to use ' Such as "group by Subject" If recSet.BOF = False And recSet.EOF = False Then 'if there is an entry recSet.MoveFirst ' moves to first entry End If recMove = True recAdd = True Call Display_fields End Sub
omidak گفت:سلام...
ببينيد ADO.Net خیلی با سیستم هایه VB6 متفاوت هستش... شما برایه تبدیل اون باید بخش DataBase و Connect اش رو بار دیگر بنویسید و همچنین شما در .Net هیچ مشکلی نخواهید داشت
omidak گفت:سلام:
من بهت توصیه میکنم این پرژه رو با 6 انجام بده... چون حقیقت اش اینه که .Net خیلی سنگینه... و میدونم به مشکلات زیادی بر میخوری...
نمیشه گفت که تغییرات زیاده یا کم... در بعضی جاها تغییرات زیادی دیده میشه بعضی جاها نه... اما اگر برنامت کامل شده دیگه نمیخواد ببریش تو .Net چون خیلی گیج ات میکنه :roll:
shakiba گفت:
دستتون درد نكنه
يه سوال ديگه
من از Ado Data ,Data Grid استفاده كردم و به ديتابيسم هم كانكت شدم
كامل جدولي كه در ديتابيسم دارم را برام مياره
ولي نميدونم آيا بايد تك به تك فيلدهايي مثل نام و نام خانوادگي و ... كه در وي بي دارم
را به فيلدهايي كه با نامهاي مشابه طراحي شدن (تك به تك) بايد به ديتابيسم كانكت كنم
omidak گفت:سلام:
اگر از اجزا Single استفاده میکنید...
باید اونها رو تک به تک نمایش دهید
اگر از اجزاء مثل Grid استفاده میکنید... بطور خودکار Column ها به راحتی به نمایش درماند
فقط کافیه که DataSource رو به اون بدید