1樓:
####上樓提供的思路是可行的,只是離實際解決問題還有些距離。ado和adox提供的都是些智慧指標*ptr,同行一般都會對它們進行再次封裝,封裝後主要的幾個類有class cadodatabase、class cadorecordset、class cadocommand。提問者可以試試我的方法,我用ado、adox做過些工程。
這些封裝好的類在四個檔案裡,ado.h/cpp、adox.h/cpp,需要的話可以email給你。
以下是用這些類實現你的功能需求。
cstring str_database, str_table ;
str_database = 「資料庫名字.mdb」;
str_table = 「表名字」;
cstring strconnection = 「microsoft.jet.oledb.4.0;data source=" ;
strconnection += str_database ;
cadodatabase db_databasetemp ;
db_databasetemp.open(strconnection); /* 連線資料庫檔案 */
cadorecordset db_recordsettemp(db_databasetemp );
db_recordsettemp.open( str_table.getbuffer(0), cadorecordset::opentable) ; // 開啟表
coledatetime *poledate ; /* ado支援的日期/時間資料型別 */
cstring str_date ; // 與控制元件關聯的字串
// 關鍵步驟****************************************
str_date = 「2008-3-31」 ;/* yyyy-mm-dd 年-月-日格式 實際由控制元件輸入 執行 update(true)完成 */
poledate = new coledatetime( time_t( atoi(str_date.getbuffer(0) ) ) ) ; /*atoi字元轉整形,time_t格式化整形為long */
// 關鍵步驟****************************************
db_recordsettemp->addnew();
cstring str_fieldname ;
db_recordsettemp.setfieldvalue( str_fieldname, * poledate) ; /* 寫時間欄位,接著寫其它欄位,完成整體記錄 */
db_recordsettemp.update();
2樓:匿名使用者
日期/時間 欄位需要用 以下格式插入時間,例如: #12:00:00 pm#
3樓:速達_濟南天禹
新增:』下面這句連線資料庫指定表的所有欄位
adodc1.recordsource = "select * from 庫存表"
』下面這句新增記錄
adodc1.recordset.addnew
下面4句就是通過4個textbox控制元件輸入欄位的資料,如果是數字型別可以加val
adodc1.recordset.fields("貨物編號") = text1.text
adodc1.recordset.fields("貨物名稱") = text2.text
adodc1.recordset.fields("庫存量") = text3.text
adodc1.recordset.fields("單位") = text4.text
』下面這個是修改後更新
adodc1.recordset.update
修改:'通過主鍵指定要修改的記錄
adodc1.recordsource = "select * from 庫存表 where 貨物編號 = " & text1.text
adodc1.refresh
adodc1.recordset.fields("貨物編號") = text1.text
adodc1.recordset.fields("貨物名稱") = text2.text
adodc1.recordset.fields("庫存量") = text3.text
adodc1.recordset.fields("單位") = text4.text
vb如何用ado向access資料庫插入和修改記錄?
4樓:
1、microsoft access視窗中,選擇檔案選單中的開啟選項,開啟一個已有的資料庫。
2、資料庫中有兩張**,如下圖所示。
3、資料庫中,**學生資訊是課程成績的子表。
4、如果直接在子表中插入記錄,會提示不能新增或修改。
5、其實,只需在主表中,插入相關的主鍵和記錄。
6、接著,就可以在子表中插入相關記錄了。
7、如果要在子表中插入欄位,只需選擇單擊以新增選項。
8、新增欄位後,輸入欄位名即可。
5樓:
private sub test()
dim con as new adodb.connection
dim rs as new adodb.recordset
dim sql as string
'連access
'con.open "provider=microsoft.jet.
oledb.4.0;data source=d:
\db3.mdb;persist security info=false"
set sql = "select * from 表名" 'sql查詢語句
rs.open sql,con,1,3 '後面的3是確定讀寫許可權的
rs.addnew '增加一行記錄,不用則修改當前記錄
while (not rs.eof)
rs("欄位1")="..." '資料讀寫操作
rs("欄位2")="..." '資料讀寫操作
...rs.movenext '移動到下一條記錄,增加新記錄無需
rs.update '儲存寫入資料,如果使用只讀許可權,則不能使用這個方法
wend
rs.close '這個方法用來關閉你所代開的表,如果不使用這個方法可造成資料庫負擔過重或後續操作問題
con.close
set con = nothing
end sub
6樓:匿名使用者
新增:』下面這句連線資料庫指定表的所有欄位
adodc1.recordsource = "select * from 庫存表"
』下面這句新增記錄
adodc1.recordset.addnew
下面4句就是通過4個textbox控制元件輸入欄位的資料,如果是數字型別可以加val
adodc1.recordset.fields("貨物編號") = text1.text
adodc1.recordset.fields("貨物名稱") = text2.text
adodc1.recordset.fields("庫存量") = text3.text
adodc1.recordset.fields("單位") = text4.text
』下面這個是修改後更新
adodc1.recordset.update
修改:'通過主鍵指定要修改的記錄
adodc1.recordsource = "select * from 庫存表 where 貨物編號 = " & text1.text
adodc1.refresh
adodc1.recordset.fields("貨物編號") = text1.text
adodc1.recordset.fields("貨物名稱") = text2.text
adodc1.recordset.fields("庫存量") = text3.text
adodc1.recordset.fields("單位") = text4.text
vb6 將文字轉換成時間,然後寫入access資料庫出問題
7樓:sql的藝術
adonum.open "select * from num", db, adopenstatic, adlockoptimistic
adonum.addnew
for n = 0 to 60
adonum.fields(n + 1) = nom(n)next
adonum.fields(61) = "#2018-03-11#"
adonum.update
adonum.close
在access資料庫中,日期或時間欄位在插入或更新時,接受的值是以」#「引起來的字串
8樓:匿名使用者
dat是什麼值?列印出來看看
用ado怎麼連線access資料庫?
9樓:匿名使用者
csize本身屬於無量綱的單位,不存在換算問題。
你上面獲得的size,本身單位就是畫素。
不過createfont函式本身w並不能精確控制建立的字型,頂多建立一個接近你的要求的字型。
如果你的字型比例太奇怪,createfont是做不到和你要求一樣的。
10樓:du瓶邪
步驟如下:
一、用有源odbc dsn的方法和無源ole db的方法連線資料庫:
1、無源ole db:
string strconn="provider=microsoft.jet.oledb.4.0 ;data source=intels.mdb" ;
2、有源odbc dsn:
string strconn="data source=intels";
如果採用ado.net連線sql server或者oracle,方法和vb中連線相應資料的連線字串一致。
二、開始連線資料庫:
adoconnection conn = new adoconnection(strconn);
三、執行一個select sql 查詢:
string strsql = "select id from test" ;
adocommand adocmd=new adocommand(conn,conn);
conn.open();
adodatareader reader;
adocmd.execute(out reader);
四、得到adodatareader中包含的資料:
先執行:
reader.read();
然後就可以取得數值:
reader["id"].tostring();
依次類推。
五、delete(刪除)語句,insert和update相同:
strsql="delete from test where id=』1』";
//strsql="insert into test values(』1』)";
//strsql="update test set id=』1』";
adocommand adocmd=new adocommand(conn,conn);
conn.open();
adocmd.execute();
vb6 0 用ado修改access資料庫中指定某行某列的單
你用ado控制元件還是物件呢?vb6.0 使用adodc控制元件讀取access資料庫.怎麼修改資料庫指定某一列的所有見容?adodc控制元件是這個兄弟,使用很簡單,舉個按鈕單擊的例子 private sub command1 click adodc1.connectionstring provid...
請教 MFC多執行緒資料庫程式設計ado,資料庫訪問衝突
dword mydlg timerthreadfunc lpvoid lpparam closehandle htimer 用多執行緒同步技術,即一個執行緒將要取得資料區鎖定,另一個執行緒此時不能存取此塊的資料。看看多執行緒同步的書。例如 void ccalibpage1 ontimer uint ...
mysql資料庫和access資料庫有什麼區別
mysql和access的區別 mysql特性 很便宜,通常是免費的 網路承載少 查詢 優化 可以簡便的應用程式通過mysql做備份 mysql操縱簡單,易上手,且為各種不同的資料格式提供有彈性的擴充套件介面 odbc access特性 簡單易學,使用方便,開發效率高。mysql對於大多數使用者而言...