如何用VB6連結ACCESS資料庫查詢,新增,刪除,修改呢?
- 帖子
- 155
- 主題
- 56
- 精華
- 0
- 積分
- 242
- 點名
- 0
- 作業系統
- WinXP
- 軟體版本
- 專業版2002
- 閱讀權限
- 0
- 註冊時間
- 2010-5-29
- 最後登錄
- 2011-7-18
|
如何用VB6連結ACCESS資料庫查詢,新增,刪除,修改呢?
只要搜尋一個欄位,如下圖
我的欄位如下圖(access資料皆由excel 表格匯入)
但我希望在撰寫的時候能夠告訴我 如何變通
例如:身分證字號是在第5欄,
如果改天我的身分證字號在第二欄的時候又該如何改寫.
關於資料第三欄的附件必須做 超連結.(我當時在excel就有做好,可惜不會連結附件)
-----------------------------------可愛的分隔線--------------------------------------------
一般聯結 資料庫只有顯示資料,並沒有新增刪除修改的功能,
我希望能夠依照權限獲得新增刪除修改的功能
備註:如果分隔線以下的新增,刪除,修改做不出來可以暫時放棄.
|
|
|
|
|
|
- 帖子
- 62
- 主題
- 10
- 精華
- 0
- 積分
- 253
- 點名
- 0
- 作業系統
- xp , win7
- 軟體版本
- office2003
- 閱讀權限
- 20
- 性別
- 男
- 來自
- 人心
- 註冊時間
- 2010-5-21
- 最後登錄
- 2012-8-3
|
2#
發表於 2010-11-12 08:56
| 只看該作者
如果改天我的身分證字號在第二欄的時候又該如何改寫.
你可以用sql 別名(欄名:身分證字號)的方式
關於資料第三欄的附件必須做超連結
可以在塞入資料庫時,只塞路徑,在使用時去指定為超連結
我希望能夠依照權限獲得新增刪除修改的功能
你必須先作個權限表,裡面有 user password 權限參數(自行設定)
開啟 form 時 再去 依登入 的 user 去事入權限
載入權限參數後 再依 參數 去設定元件的 enabled=false 就可控制了
當然這只是權限控制的其中一個方式,還有很多你可以慢慢玩 |
|
是學程式而不是要程式,是進步的基礎
|
|
|
|
|
- 帖子
- 155
- 主題
- 56
- 精華
- 0
- 積分
- 242
- 點名
- 0
- 作業系統
- WinXP
- 軟體版本
- 專業版2002
- 閱讀權限
- 0
- 註冊時間
- 2010-5-29
- 最後登錄
- 2011-7-18
|
3#
發表於 2010-11-12 11:33
| 只看該作者
請問是否有詳細做法呢? 如果不方便的話也沒關係,感謝您的解答.
|
|
|
|
|
|
- 帖子
- 128
- 主題
- 13
- 精華
- 1
- 積分
- 118
- 點名
- 0
- 作業系統
- WinXP
- 軟體版本
- Office2003
- 閱讀權限
- 50
- 性別
- 男
- 來自
- 四川成都邛崃
- 註冊時間
- 2010-9-13
- 最後登錄
- 2017-5-12
|
4#
發表於 2010-11-12 12:03
| 只看該作者
你这已经是个完整的系统了.
最好要有附件:vb6的和Access的. |
|
|
|
|
|
|
- 帖子
- 155
- 主題
- 56
- 精華
- 0
- 積分
- 242
- 點名
- 0
- 作業系統
- WinXP
- 軟體版本
- 專業版2002
- 閱讀權限
- 0
- 註冊時間
- 2010-5-29
- 最後登錄
- 2011-7-18
|
5#
發表於 2010-11-12 20:03
| 只看該作者
本帖最後由 vpower 於 2010-11-12 20:05 編輯
原本是要由excel來做的,可是因為資料太龐大,高達50萬筆資料,而且也無法容納,如下
http://naturefruit.myweb.hinet.net/1.xls
後來我匯入access,如下

而且改成只要依照身分證字號搜尋就好,
可是我不會利用access連結資料庫以及VB6如何依照身分證字號搜尋資料,如下(預想圖)

而且我的資料內容有超連結的欄位,所以變的很複雜
如果有機會的話,希望能依照權限有新增刪除修改的功能.
如果有大大願意幫忙的話,如果不願意也沒關係,感恩了.
|
|
|
|
|
|
- 帖子
- 62
- 主題
- 10
- 精華
- 0
- 積分
- 253
- 點名
- 0
- 作業系統
- xp , win7
- 軟體版本
- office2003
- 閱讀權限
- 20
- 性別
- 男
- 來自
- 人心
- 註冊時間
- 2010-5-21
- 最後登錄
- 2012-8-3
|
6#
發表於 2010-11-12 22:54
| 只看該作者
其實不會很複雜,一個功能一個功能折開來想就好了
另外...我寫的是架構只要依架構下去,就一定做的出來
資料庫 <<>> ado連線 <<>> sql 語法 就可以達成欄位名 或 欄位數
(excel也可以看成是資料庫),你可以去看一下 ado 的用法,板上有
登入
你應該先建立一個table(資料庫),記錄 user password add del updata
001 1234 y n y
這樣的方式 我在 登入 form 時 使用者輸入 帳密 按下 確定時,
用ado 連線 找出 user,然後回傳 比對passwod, ok時 帶入權限
將 add del updata 用 陣列記錄起來, form1 在 load 時,判定 add = y 時
新增鈕.enabled=true 刪除鈕.enabled=false
這樣就可依使用者,去決定使用的功能
當然 寫法真的有很多種,我列出的只是很簡單的一種,網上真的有很多資料
另 要對資料庫應用 真的要會 連線方式 , ado 是一種常用的用法 ,建議去找一下相關資料,不會ado 資料庫存取功能,個人覺的會少一半
另 sql 語法 配合ado 才能下妳要的條件,也就是說,ado 是 vb 跟 資料庫的橋樑 sql 是你的需求
所以 ado 跟sql 是不可少的
超連結的部份, 當你把查詢值 回傳回來後, 再對 特定的欄位,去指定為超連結(或用超連結元件)
所以 當 執行完 以上的程式段 使用者看到的 就是完整的功能了
你可以試試看再問 你遇到的問題,要不然這樣整篇說,真的會寫很多很久,我只好大慨的說一下
另 建議 你先看一下 ado 別人的用法 (裡面會有sql的用法,不懂再問)
試試吧 |
|
是學程式而不是要程式,是進步的基礎
|
|
|
|
|
- 帖子
- 128
- 主題
- 13
- 精華
- 1
- 積分
- 118
- 點名
- 0
- 作業系統
- WinXP
- 軟體版本
- Office2003
- 閱讀權限
- 50
- 性別
- 男
- 來自
- 四川成都邛崃
- 註冊時間
- 2010-9-13
- 最後登錄
- 2017-5-12
|
7#
發表於 2010-11-12 23:46
| 只看該作者
附件是一个最基本的VB6.0做前台界面,通过ADO连接后台Access数据库的单机版桌面系统,只是完成了查询功能。若你对ADO和SQL不熟悉的话,你所要求的其它新增,刪除,修改功能你是做不出来的。
由于系统字体的缘故,代码未作解释,写了你打开也是乱码。
vb6.rar (31.4 KB)
|
|
|
|
|
|
|
- 帖子
- 155
- 主題
- 56
- 精華
- 0
- 積分
- 242
- 點名
- 0
- 作業系統
- WinXP
- 軟體版本
- 專業版2002
- 閱讀權限
- 0
- 註冊時間
- 2010-5-29
- 最後登錄
- 2011-7-18
|
8#
發表於 2010-11-13 10:23
| 只看該作者
本帖最後由 vpower 於 2010-11-13 11:15 編輯
真的非常感謝兩位大大,我先去看ado的用法好了,希望可以在星期一以前完成.
暗黑大大您好
是否可以提供幾個網站呢?我找了好久都沒有ado從頭到尾操作的解說.
et5323 大大您好
想請教您一下"使用方法
1.在Personal_ID:右方輸入H
2.按下LookUp
3.他會顯示錯誤,如下
adoRecordset.Open sSQL, adoConnection, 1, 1
這是什麼意思呢?
ShowDoc是否開始該筆資料的超連結呢?
|
|
|
|
|
|
- 帖子
- 155
- 主題
- 56
- 精華
- 0
- 積分
- 242
- 點名
- 0
- 作業系統
- WinXP
- 軟體版本
- 專業版2002
- 閱讀權限
- 0
- 註冊時間
- 2010-5-29
- 最後登錄
- 2011-7-18
|
9#
發表於 2010-11-13 11:57
| 只看該作者
我搜尋了有關VB連結ACCESS資料庫的資料
VB可以和Access做連結,但有幾個步驟要設定,如下:
一.開啟新表單,在功能表列"專案"→"設定使用元件"→選Micorsoft ADO Data Control6.0(OLEDB),將ADODC1的物件放入表單上。
二.在ADODC1的物件上,按滑鼠右鍵,選ADODC的屬性,然後會出現一個屬性頁的視窗。在屬性頁視窗的"一般"項目裡,點選"使用連線字串",然後按右方的"建立"鈕後,會在出現一個資料連結內容的視窗。
三.資料連結內容視窗的"提供者"項目裡,選取"Microsoft Jet 4.0 OLE DB Provider",按"下一步",資料連結內容視窗會切換到"連線"項目裡,然後在"1.選擇或輸入資料庫名稱"下方空白處輸入要連結的Access檔案名稱及路徑,也可直接按右方的"..."鍵去加入檔案,檔案加入後按下方"測試連線"鈕,如果出現測試連線成功的視窗,就表示VB和Access的檔案已經連結了,按"確定"鈕回到屬性頁的視窗。
四.在屬性頁視窗的"資料錄來源"項目裡,命令類型請選擇"2-adCmd Table",資料表或預存程序的名稱請選擇你Access檔案內的資料表名稱(通常只會有一個而已,Access的內定檔名是"資料表1",除非你的Access有做二個資料表)按"確定"鈕。
五.在表單上放入Text1,Text2,Text3物件,將這三個物件的屬性DataSource選擇"Adodc1",然後再將Text1的屬性DataField選擇"學號",Text2的屬性DataField選擇"國文",Text3的屬性DataField選擇"數學"。
六.執行程式,Access的資料就會顯示在Text上了。
PS:Access資料表的欄位名稱無法讀進Text裡,你要自己用Label去標示。
以上這個對我要完成的資料是否有用呢?
|
|
|
|
|
|
- 帖子
- 62
- 主題
- 10
- 精華
- 0
- 積分
- 253
- 點名
- 0
- 作業系統
- xp , win7
- 軟體版本
- office2003
- 閱讀權限
- 20
- 性別
- 男
- 來自
- 人心
- 註冊時間
- 2010-5-21
- 最後登錄
- 2012-8-3
|
10#
發表於 2010-11-13 14:09
| 只看該作者
個人建議不要用 adodb 那個東西,我之前用過不很好用,雖然它某些方面很方便但彈性不足
ado的資料 板上excel 程式區就有,上文我有提過 excel可以看成資料庫,用法一樣 只是下的參數變動而已
如 http://forum.twbts.com/thread-556-1-1.html
裡面就有我po的ado 連線
Dim theCON As ADODB.Connection
Public theRST As ADODB.Recordset
Sub subConn(strFullName As String)
Dim strDrv As String
Dim IQC_SQLPass$, IQC_SQLID$, IQC_SQLName$, IQC_SQLAdderss$
(上面是連結資料庫的相關資訊 如 資料庫密碼 資料庫表單 資料庫名稱 資料庫位址)
IQC_SQLPass = "yyyyy"
IQC_SQLID = "yy"
IQC_SQLName = "Spc-Iqc"
IQC_SQLAdderss = "192-168-100-199\SQLEXPRESS"
theCON.Open " rovider=SQLOLEDB.1 assword=" & IQC_SQLPass & " ersist Security Info=True;User ID=" & IQC_SQLID & ";Initial Catalog=" & IQC_SQLName & ";Data Source=" & IQC_SQLAdderss
End Sub
Provider=SQLOLEDB.1(這個改成access的連線參數)
這樣就完成 資料庫的連線了,再來就是跟資料庫說,我們要什麼了- Function 連結AccEss(資料庫路徑 As String, mApp As String, mApp1 As String, 欄位數%)
- Dim strCMn As String
- Dim Ia%, Ib%
- Dim DArr(), Darr1
- Set myDbAcs = New clsADODBopenAcs '起始一個新的連結
- strCMn = "select * from " & mApp '這裡給于SQL敘述
- With myDbAcs
- .subConn 資料庫路徑 '連結資料庫檔案名稱(全路徑)
- .subOpen strCMn ' 以給于的SQL敘述打開一個資料集.
- End With
-
- ReDim DArr(1 To myDbAcs.theRST.RecordCount, 1 To 欄位數)
- Darr1 = Split(mApp1, ",", -1)
-
- For Ia = 1 To myDbAcs.theRST.RecordCount '讀取資料
- For Ib = 1 To 欄位數
- DArr(Ia, Ib) = myDbAcs.theRST("" & Darr1(Ib - 1) & "").Value
- ' myDbAcs.theRST.MoveNext
- Next Ib
- If Ia > 0 Then
- myDbAcs.theRST.MoveNext
- End If
- Next Ia
-
- 連結AccEss = DArr
-
- Set myDbAcs = Nothing '釋放連結物件
- End Function
複製代碼 |
|
是學程式而不是要程式,是進步的基礎
|
|
|
|
|