我想对Access数据库数据进行显示和修改,现在程序是这样的
DataGrid1.AllowUpdate = True
DataGrid1.AllowAddNew = True
DataGrid1.AllowDelete = TrueSet con = New ADODB.Connection
con.CursorLocation = adUseClient '使游标在客户端. con.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\SIM.mdb;Persist Security Info=False"
Dbstr = "select * from 校线表"
Set rs = New ADODB.Recordset
rs.Open Dbstr, con
Set DataGrid1.DataSource = rs
DataGrid1.Refresh
现在可以显示了,但控件上的数据不能改,也不能通过控件改数据库的数据,请教怎么实现修改控件的数据并保存到数据库...先谢谢啦
这是效果图,可以选择单元格,但是不能修改
VBçDataGridç¨æ³ï¼
DataGrid æ§ä»¶æ¯ä¸ç§ç±»ä¼¼äºçµåæ°æ®è¡¨çç»å®æ§ä»¶ï¼å¯ä»¥æ¾ç¤ºä¸ç³»åè¡ååæ¥è¡¨ç¤º Recordset 对象çè®°å½åå段ãå¯ä»¥ä½¿ç¨ DataGrid
æ¥å建ä¸ä¸ªå
许æç»ç¨æ·é
读ååå
¥å°ç»å¤§å¤æ°æ°æ®åºçåºç¨ç¨åºãDataGrid æ§ä»¶å¯ä»¥å¨è®¾è®¡æ¶å¿«éè¿è¡é
ç½®ï¼åªéå°é代ç ææ é代ç ãå½å¨è®¾è®¡æ¶è®¾ç½®äº
DataGrid æ§ä»¶ç DataSource
å±æ§åï¼å°±ä¼ç¨æ°æ®æºçè®°å½éæ¥èªå¨å¡«å
该æ§ä»¶ï¼ä»¥åèªå¨è®¾ç½®è¯¥æ§ä»¶çåæ 头ãç¶åæ¨å°±å¯ä»¥ç¼è¾è¯¥ç½æ ¼çåï¼å é¤ãéæ°å®æãæ·»å åæ 头ãæè
è°æ´ä»»æä¸åç宽度ã
å¨è¿è¡æ¶ï¼å¯ä»¥å¨ç¨åºä¸åæ¢ DataSource æ¥å¯çä¸åç表ï¼æè å¯ä»¥ä¿®æ¹å½åæ°æ® åºçæ¥è¯¢ï¼ä»¥è¿åä¸ä¸ªä¸åçè®°å½éåã
å¯è½çç¨æ³
1.æ¥çåç¼è¾å¨è¿ç¨ææ¬å°æ°æ®åºä¸çæ°æ®ã
2.ä¸å¦ä¸ä¸ªæ°æ®ç»å®çæ§ä»¶ï¼è¯¸å¦ DataList æ§ä»¶ï¼èå使ç¨ï¼ä½¿ç¨ DataGrid
æ§ä»¶æ¥
æ¾ç¤ºä¸ä¸ªè¡¨çè®°å½ï¼è¿ä¸ªè¡¨éè¿ä¸ä¸ªå ¬å ±å段é¾æ¥å°ç±ç¬¬äºä¸ªæ°æ®ç»å®æ§ä»¶ææ¾ç¤º ç表ã
ä½¿ç¨ DataGrid æ§ä»¶ç设计æ¶ç¹æ§
å¯ä»¥ä¸ç¼åä»»ä½ä»£ç ï¼åªéè¿ä½¿ç¨ DataGrid æ§ä»¶ç设计æ¶ç¹æ§æ¥å建ä¸ä¸ªæ°æ®åºåºç¨ç¨åºãä¸é¢ç说ææ¦è¦å°è¯´æäºå¨å®ç° DataGrid
æ§ä»¶çå
¸ååºç¨æ¶çä¸è¬æ¥éª¤ã
è¦å¨è®¾è®¡æ¶å®ç°ä¸ä¸ª DataGrid æ§ä»¶
1.为æ¨å¸æ访é®çæ°æ®åºå建ä¸ä¸ª Microsoft æ°æ®é¾æ¥ (.UDL) æ件ã请åé
âå建 Northwind OLE DB
æ°æ®é¾æ¥â主é¢ï¼ä»¥è·å¾ä¸ä¸ªç¤ºä¾ã
2.å¨çªä½ä¸æ¾ç½®ä¸ä¸ª ADO Data æ§ä»¶ï¼å¹¶å°å
¶ ConnectionString å±æ§è®¾ç½®ä¸ºå¨ç¬¬ 1 æ¥ä¸æå建çOLE DB
æ°æ®æºã
3.å¨è¿ä¸ª Ado Data æ§ä»¶ç RecordSource å±æ§ä¸è¾å ¥ä¸æ¡å°è¿åä¸ä¸ªè®°å½éç SQL è¯å¥ãä¾å¦ï¼
Select * From MyTableName Where CustID = 12
4.å¨çªä½ä¸æ¾ç½®ä¸ä¸ª DataGrid æ§ä»¶ï¼å¹¶å°å
¶ DataSource å±æ§è®¾ç½®ä¸ºè¿ä¸ª ADO Data æ§ä»¶ã
5.å³é®åå»è¯¥ DataGrid æ§ä»¶ï¼ç¶ååå»âæ£ç´¢å段âã
6.å³é®åå»è¯¥ DataGrid æ§ä»¶ï¼ç¶ååå»âç¼è¾âã
7.éæ°è®¾ç½®è¯¥ç½æ ¼ç大å°ãå é¤ãææ·»å ç½æ ¼çåã
8.å³é®åå»è¯¥ DataGrid æ§ä»¶ï¼ç¶ååå»âå±æ§âã
9.使ç¨âå±æ§é¡µâ对è¯æ¡æ¥è®¾ç½®è¯¥æ§ä»¶çéå½çå±æ§ï¼å°è¯¥ç½æ ¼é 置为æéçå¤è§åè¡ä¸ºã
å¨è¿è¡æ¶æ´æ¹æ¾ç¤ºçæ°æ®
å¨å建äºä¸ä¸ªä½¿ç¨è®¾è®¡æ¶ç¹æ§çç½æ ¼åï¼ä¹å¯ä»¥å¨è¿è¡æ¶å¨æå°æ´æ¹è¯¥ç½æ ¼çæ°æ®æºãä¸é¢ä»ç»å®ç°è¿ä¸åè½çé常æ¹æ³ã
æ´æ¹ DataSource çRecordSource
æ´æ¹ææ¾ç¤ºçæ°æ®çæé常çæ¹æ³æ¯æ¹å该 DataSource çæ¥è¯¢ãä¾å¦ï¼å¦æ DataGrid æ§ä»¶ä½¿ç¨ä¸ä¸ª ADO Data æ§ä»¶ä½ä¸ºå ¶ DataSourceï¼åéå RecordSourceãå·æ°è¯¥ ADO Data æ§ä»¶ãé½å°æ¹åææ¾ç¤ºçæ°æ®ã
' ADO Data æ§ä»¶è¿æ¥çæ¯ Northwind æ°æ®åºç
' Products 表ãæ°æ¥è¯¢æ¥æ¾ææ
' SupplierID = 12 çè®°å½ã
Dim strQuery As String
strQuery = "SELECT * FROM Suppliers WHERE SupplierID = 12"
Adodc1.RecordSource = strQuery
Adodc1.Refresh
æ´æ¹ DataSource
å¨è¿è¡æ¶ï¼å¯ä»¥å° DataSource å±æ§éæ°è®¾ç½®ä¸ºä¸ä¸ªä¸åçæ°æ®æºãä¾å¦ï¼æ¨å¯è½å ·æè¥å¹²ä¸ª ADO Data' å° DataSource éæ°è®¾ç½®ä¸ºä¸ä¸ªè¿æ¥å° Pubs æ°æ®åºçã
' ä½¿ç¨ Authors 表ç ADO Data æ§ä»¶ã
Set DataGrid1.DataSource = adoPubsAuthors
éæ°ç»å® DataSource
å½å° DataGrid æ§ä»¶ç¨äºä¸ä¸ªè¿ç¨æ°æ®åºï¼è¯¸å¦ SQLServer æ¶ï¼å¯ä»¥æ¹å表çç»æãä¾å¦ï¼å¯ä»¥ç»è¿ä¸ªè¡¨æ·»å ä¸ä¸ªå段ãå¨è¿ç§æ
å½¢æ¶ï¼å¯ä»¥è°ç¨
Rebind æ¹æ³æ ¹æ®æ°çç»ææ¥éæ°å建该ç½æ ¼ã注æï¼å¦æå·²ç»å¨è®¾è®¡æ¶æ¹åäºè¿ä¸ªåçå¸å±ï¼DataGrid
æ§ä»¶å°ä¼è¯å¾éæ°å建å½åçå¸å±ï¼å
æ¬ä»»ä½ç©ºçåãä¸è¿ï¼éè¿é¦å
è°ç¨ ClearFields æ¹æ³ï¼å¯ä»¥å¼ºå¶è¯¥ç½æ ¼éæ°è®¾ç½®ææçåã
可以直接在表上改吗?
追答对的,加上text控件后,编上代码,就可以双击那个数据,更改数据