ابتدا از منوي پروجكت ، زير منوي كامپوننت ، دو شي microsoft ado data control 6.0(oledb) و microsoft datagrid control 6.0(oledb) را به جعبه ابزار ( toolbox ) افزودم.
بعد هر دو را روي فرم قرار دادم.
بعد راست كليك كردم روي كنترل ado و پراپرتي را انتخاب كردم. يك پنجره باز شد. Tab اول general بود. در اين تب ، 3 آپشن باتن موجود بود ، سومي use connection string بود.
با زدن دكمه build يك پنجره ديگر باز شد به نام data link property ، در تب اول كه تب provider بود ، من انتخاب microsoft jet 4.0 ole db provider را برگزيدم. در تب دوم كه تب connection بود ، محلي براي browse داشت. كه فايلي كه با اكسس ساخته بودم را برگزيدم.
بعد ok كردم. تا به پنجره باز قبلي برگرديم. در اين پنجره به تب recordsource رفتم و در آنجا در كومبو باكس command type ، گزينه 8-adCmdUnknown را انتخاب كردم. و در همين تب ، كمي پايين تر ، در قسمت command text(sql) اين دستور را نوشتم:
select * from table1
چون اسم جدول داخل ديتابيس من
table1
بوده.
بعدش هم ok كردم.
حالا مي خواهم datagrid خود را به ado متصل كنم.
پس روي datagrid كليك مي كنم تا بروم به پنجره پراپرتي و بعد صفت datasource را adodc1 قرار دادم.
بعد برنامه را اجرا كردم. درسته جدول در datagird نمايان است. دست شما درد نكنه. خسته هم نباشيد. عكسشم اينه:
.
![]()
البته درست نيست سئوال الان بپرسم چون خسته شديد ، ولي آن كدهايي كه قبلا ذكر كرديد اينجا استفاده نشد. فكر كنم ميشه استفاده كرد. اگر ميشه چند دستور sql و روش استفاده اش را بگيد و بگيد كه دستورات sql آيا همه جا مجازند استفاده بشوند در ويژوال بيسيك يا شرايطي داره.
به نقل از saalek :ويژوال بيسيك مي تواند خودش ديتابيس بسازد. براي اينكار به منوي add-ins برويد و visual data manager را كليك كنيد. يك پنجره باز مي شود.
![]()
بعد از منوي فايل در اين پنجره ، new را انتخاب مي كنيم و بعد microsoft accese و بعد version 7.0 mdb ، در اينجا مي خواهد ديتابيس خود را با نامي در هارد save كنيد. بعد اين كار نماي زير را خواهيم داشت.:
![]()
در شكل بالا جايي كه ماوس نشان مي دهد ، يك بعلاوه است . اگر روي آن كليك كنيم ، يكسري پراپرتي نمايان مي شود. ولي نيازي به نگراني نيست . فقط روي كلمه property كليك راست كنيد و new را برگزينيد. پنجره اي باز مي شود به نام table structure ......
![]()
در اين پنجره نامي به table خود بدهيد. بعد دكمه add field را بزنيد تا فيلدهاي خود را تعيين كنيد . بعد تعيين فيلدها دكمه بيلد را بزنيد.
.
به نقل از saalek :
![]()
من روي هر فرم يك ADO قرار دادم و به يك ديتابيس اكسس وصل شدم.
اجزاي هر فرم به ADO فرم مربوطه وصل مي شوند.
من ADO را پلي براي اتصال فرض مي كنم. و فرض مي كنم اين پلها ديگر شي هاي فرم را به ديتابيس وصل مي كنند. اگر درست كار كنه يعني اين فرض من درسته.
ببينيد درست كار مي كنه.
.
=====================
ضمنا نتوانستم تكست باكس اين فرم را به adoآن فرم وصل كنم. شايد بشه ولي من بلد نيستم. براي همين اگر من بخواهم در روي دو فرم اشيا را به يك ديتابيس وصل كنم ، فعلا روي هر فرم يك ado مي گذارم.
.
فكر كنم بايد از دستور refresh هم استفاده كني تا وقتي در يك فرم تغيير مي دهي در فرم ديگر تغيير رفرش بشه. البته كار نكردم و اصلا نمي دانم متدش هست يا نه ولي احتمال زياد هست.
.
می خواهیم با زدن دکمه ای رکوردی به دیتابیس ما افزوده شود و محتوای یک سری تکست باکس به عنوان ستونهای تیبل ما درج شود.کدش این می شود:
کد: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
البته من زیاد کار نکردم تا متوجه اشکالات احتمالی بشوم ولی درست کار می کرد و دیتابیس ما در درایو سی رکورد به تیبل اش اضافه میشد.
فراموش نکنید که در تکست باکس ها مقدار درست وارد کنید. مثلا اگر نوع ستون عددی است رشته وارد نکنید.
![]()
سلام
من این مراحلی که شما گفتید را انجام دادم منتها برای اتصال به sql server 2000
بعد از قرار دادن شی ado روی فرم و مراحل زیر را رفتم
در تب PROVIDER گزینه MICROSOFT OLE DB Provider for SQL Server را انتخاب کردم .
بعد در تب CONNECTION در انتخاب مسیر ،مسیر فایل پایگاه داده بر روی هارد را رفتم و فایل با پسوند MDFرا انتخاب کردم
( نمی دونم درسته یا نه؟)بعد هم OK
در تب RECORDSOURCE قسمت Command Type گزینه AdCmdUnKnown رو انتخاب کرده بعدشم در قسمت COMMAND TEXT دستور SQL select from *TblWholesale را نوشتم
موقعی که شی data graid را روی فرم آوردم و در قسمت data source ، Adodc1 را انتخاب می کنم موقع اجرا پیغام خطای زیر را میده (Invalid authorization specification )
ممنون میشم اگه راهنماییم کنید
و اگه میشه لطف کنید در مورد گزینه های Command Type یه توضیح مختصر بدید .
چرا نميشه؟
كنترل Adodc دقيقا مثل كنترل هاي ديگه هست و براي دسترسي به متد ها يا خواصش تو يه فرم ديگه ميشه به راحتي از form.adodc دقيقا مثل كنترل هاي ديگه استفاده كرد.
Private Sub Form_Load()
Adodc1.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & _
App.Path & "\db1.mdb;Persist Security Info=False"
Adodc1.RecordSource = "select * from Table1"
Set DataGrid1.DataSource = Adodc1
Form2.Show
End Sub
Private Sub Form_Load()
Set DataGrid1.DataSource = Form1.Adodc1
End Sub