2011-03-06 36 views
0

我正在爲我的一個朋友製作一個POS系統,真正的小而簡單。現在在VB6中需要ADO的幫助

幾乎一切被編碼,除了和庫存視圖

我想使它所以當它點擊一個按鈕,它會加載到一個列表視圖 的UPC代碼,並與該UPC相關的名稱。

我是編程新手,我試圖自己做這個。我知道我需要獲取數據庫中的許多項目(有多少個UPC),然後在listview中添加一個循環。

,但我有麻煩多少行是在數據庫中開始和結束一個循環

+1

很大程度上取決於您是否使用DAO或ADO對象進行數據庫訪問。告訴我們這可能會爲你提供更有針對性的答案。一般來說,儘管Recordset有一個RecordCount屬性,可以根據你所要求的CursorType來使用它。您也可以執行計數(*)查詢來獲取記錄數。 – Bob77 2011-03-06 05:47:48

+0

對不起,我看到標題中寫着ADO。 – Bob77 2011-03-06 19:17:23

回答

1

,如果你發佈你的一些代碼,這會更容易些,所以我們可以看到你開始用什麼。但是,你應該可以做這樣的事情(我的VB/ADO是生鏽的,所以我可能會吹一下語法。正如克里斯上面提到的,VB6在牙齒上變得有點長......) 。在大多數情況下,你不需要知道有多少條記錄,以便返回到填充您的ListView - 只需使用一個「做,直到」循環如下:

Public Sub LoadListview() 
    Dim cn As ADODB.Connection 
    Dim rs As ADODB.Recordset 

    Dim SQL As String 
    SQL = _ 
     "SELECT . . . " & _ 
     "FROM . . . " & _ 
     "WHERE . . . " 

    Set cn = New ADODB.Connection 

    With cn 
     .Provider = "Microsoft.Jet.OLEDB.4.0" 
     .ConnectionString = "YourConnectionString" 
     .Open 
    End With 

    Set rs = New ADODB.Recordset 

    rs.Open SQL, cn, adOpenForwardOnly, adLockReadOnly 

    With rs 
     If Not .EOF Then 
      Do Until .EOF 
       ' Your code to populate your ListView Here 
      .MoveNext 
      Loop 
     End If 
    End With 

    rs.Close 
    cn.Close 

     Set rs = Nothing 
    Set cn = Nothing 

End Sub 

請注意,我在這裏簡單的東西一點點。在現實中,如果您將條件傳遞到WHERE子句中,通常應該將PARAMETERS與ADODB.Command對象結合使用。在本例中,我沒有包含ADODB.Command。

+0

這裏是即時的編碼如何,你的代碼是非常複雜的,我聽不懂 – enko 2011-03-06 07:02:55

+0

'昏暗RS作爲新ADODB.Recordset rs.Open「tblitem」的一個例子,CON,adOpenDynamic,ADLOCKPESSIMISTIC rs.MoveLast X = RS .Fields(「itemcode」)+ 1 Text1.Text = x' 這是我只是試圖獲取數據庫中的行數 – enko 2011-03-06 07:03:31

+2

@enko:嗯,這並不複雜。如果你不明白這一點,那麼當試圖在VB 6中編寫應用程序的其餘部分時,你會完全迷失方向。我建議你拿起一本書,教你如何用語言進行編程。而且,正如其他人所建議的那樣,如果您以前沒有使用過VB 6的經驗,那麼您最好從一種不同的,更現代的語言開始。 VB.NET或C#是數據庫交互的不錯選擇。 – 2011-03-06 07:36:10