Board logo

標題: 如何用VB6連結ACCESS資料庫查詢,新增,刪除,修改呢? [打印本頁]

作者: vpower    時間: 2010-11-11 18:27     標題: 如何用VB6連結ACCESS資料庫查詢,新增,刪除,修改呢?

提示: 作者帳號被禁止或禁止訪問
作者: 暗黑    時間: 2010-11-12 08:56

如果改天我的身分證字號在第二欄的時候又該如何改寫.
   你可以用sql 別名(欄名:身分證字號)的方式

關於資料第三欄的附件必須做超連結
  可以在塞入資料庫時,只塞路徑,在使用時去指定為超連結

我希望能夠依照權限獲得新增刪除修改的功能
  你必須先作個權限表,裡面有  user  password  權限參數(自行設定)
  開啟 form 時 再去 依登入 的 user 去事入權限
  載入權限參數後  再依  參數 去設定元件的 enabled=false 就可控制了

當然這只是權限控制的其中一個方式,還有很多你可以慢慢玩
作者: vpower    時間: 2010-11-12 11:33

提示: 作者帳號被禁止或禁止訪問
作者: et5323    時間: 2010-11-12 12:03

你这已经是个完整的系统了.
最好要有附件:vb6的和Access的.
作者: vpower    時間: 2010-11-12 20:03

提示: 作者帳號被禁止或禁止訪問
作者: 暗黑    時間: 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的用法,不懂再問)
試試吧
作者: et5323    時間: 2010-11-12 23:46

附件是一个最基本的VB6.0做前台界面,通过ADO连接后台Access数据库的单机版桌面系统,只是完成了查询功能。若你对ADO和SQL不熟悉的话,你所要求的其它新增,刪除,修改功能你是做不出来的。
由于系统字体的缘故,代码未作解释,写了你打开也是乱码。
[attach]3593[/attach]
作者: vpower    時間: 2010-11-13 10:23

提示: 作者帳號被禁止或禁止訪問
作者: vpower    時間: 2010-11-13 11:57

提示: 作者帳號被禁止或禁止訪問
作者: 暗黑    時間: 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.1assword=" & IQC_SQLPass & "ersist Security Info=True;User ID=" & IQC_SQLID & ";Initial Catalog=" & IQC_SQLName & ";Data Source=" & IQC_SQLAdderss
   
End Sub

Provider=SQLOLEDB.1(這個改成access的連線參數)   

這樣就完成  資料庫的連線了,再來就是跟資料庫說,我們要什麼了
  1. Function 連結AccEss(資料庫路徑 As String, mApp As String, mApp1 As String, 欄位數%)

  2. Dim strCMn As String
  3. Dim Ia%, Ib%
  4. Dim DArr(), Darr1
  5.   Set myDbAcs = New clsADODBopenAcs         '起始一個新的連結
  6.   strCMn = "select * from " & mApp    '這裡給于SQL敘述
  7.     With myDbAcs
  8.        .subConn 資料庫路徑   '連結資料庫檔案名稱(全路徑)
  9.        .subOpen strCMn        ' 以給于的SQL敘述打開一個資料集.
  10.     End With
  11.    
  12.     ReDim DArr(1 To myDbAcs.theRST.RecordCount, 1 To 欄位數)
  13.     Darr1 = Split(mApp1, ",", -1)
  14.       
  15.     For Ia = 1 To myDbAcs.theRST.RecordCount    '讀取資料
  16.       For Ib = 1 To 欄位數

  17.         DArr(Ia, Ib) = myDbAcs.theRST("" & Darr1(Ib - 1) & "").Value

  18.        ' myDbAcs.theRST.MoveNext
  19.       Next Ib
  20.       If Ia > 0 Then
  21.         myDbAcs.theRST.MoveNext
  22.       End If
  23.     Next Ia
  24.    
  25.    連結AccEss = DArr
  26.   
  27.    Set myDbAcs = Nothing   '釋放連結物件
  28. End Function
複製代碼

作者: 暗黑    時間: 2010-11-13 14:11

類別
clsADODBopenAcs
Option Explicit


Dim theCON As ADODB.Connection
Public theRST As ADODB.Recordset

Sub subConn(strFullName As String)
Dim strDrv As String

    strDrv = "Data Source=" & strFullName & ";"
    theCON.Open "rovider=Microsoft.Jet.OLEDB.4.0;" & strDrv & "Jet OLEDBatabase Password=zxcvbnm,./;"
   
   
   
    '其密碼參數如何設定
'theCON.Open "rovider=Microsoft.Jet.OLEDB.4.0;" & strDrv & "Jet OLEDBatabase Password=yourpassword;"
   
End Sub

Sub subOpen(strCMn As String)
    theRST.Open Source:=strCMn, ActiveConnection:=theCON, _
                CursorType:=adOpenStatic, LockType:=adLockPessimistic, Options:=adCmdText
End Sub

Private Sub Class_Initialize()
    Set theCON = New ADODB.Connection
    Set theRST = New ADODB.Recordset
End Sub

Private Sub Class_Terminate()
    theCON.Close
    Set theRST = Nothing
    Set theCON = Nothing
End Sub


這是access 的ado 連線類別,結合上一段,就可載出資料
作者: 暗黑    時間: 2010-11-13 14:15

另外  這邊板上有個舊資料查詢   那裡是舊論壇 有很多資料  你可以去看看
另  你可以試用  vb2008  下去寫,會比  vb6還好寫的多了
作者: 暗黑    時間: 2010-11-13 14:19

再補充一下  連結AccEss 的參數

資料庫路徑 = "Z:\部門\製造中心\品質管理部\QM資料庫\FQCDataBase.mdb"
  mApp = "FQC"
  mApp1 = "檢驗日期,檢驗時間,週別,班別,檢驗人員,工單號碼,廠商名稱,產品編號,品名,規格,RUN卡,大標,內標,小標,Hi-Pot,瓦數,檢驗結果,異常類別,異常位置,異常編碼,不良項目,不良原因,處理方式,備註"


mapp  是 table 的名稱
mapp1  是 table  的欄位名稱(不是欄位數喔)
作者: vpower    時間: 2010-11-13 16:58

提示: 作者帳號被禁止或禁止訪問




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)