SelectDB函數

本函數用於從開啟的資料庫內的表格中搜尋資料。

格式
SelectDB (#資料庫編號,表格名稱,Select條件,Sort方法)

參數

資料庫編號
用於指定以OpenDB指定的資料庫編號(501~508的整數值)。
表格名稱
指定要執行資料查找的表格名稱。若以檔案編號指定的資料庫類別為Excel活頁簿,則指定Excel工作表或有命名的表格。若要指定Excel工作表,請在工作表名稱末尾附加$,並用[]括起來。若要指定以Excel工作表內的名稱指定的區域時,請用[]括起名稱。
Select條件
指定查找條件。可用AND、OR指定複合條件。未指定搜尋條件時,則搜尋表格內的所有資料。
Sort方法
指定提取查找資料的順序。指定Sort鍵和Sort順序(按升序[ASC]/降序[DESC])。若省略Sort順序,則表示已指定Sort鍵的升序。若省略Sort方法,則依開啟的資料庫確定順序。

傳回值
用於傳回搜尋行的總數。

說明
依照Sort條件從開啟的資料庫之指定表格中對符合Select條件的資料進行Sort操作。

務必在透過Input#、Print#載入/寫入資料前執行。

當開啟的資料庫為Excel活頁簿時,工作表以及以名稱定義的區域之第1行用於搜尋的列名讀取,而不會作為資料使用。

若1張工作表中存在多個資料表,將無法正常讀取工作表內的資料表。請為各資料表的區域命名,並指定為以名稱定義的區域。

注意


需連接有安裝RC+的PC。


參照
OpenDB, CloseDB, UpdateDB, DeleteDB, Input #, Print #

SelectDB函數範例
使用SQL資料庫的範例

以下是以TitleOfCourtesy按EmployeeID的降序從SQL服務器2000範例資料庫Northwind的表格Employees載入Ms.資料的簡易範例。

  Integer count, i, eid
  String Lastname$, Firstname$, Title$

  OpenDB #501, SQL, "(LOCAL)", "Northwind"
  count = SelectDB(#501, "Employees", "TitleOfCourtesy = 'Ms.'", "EmployeeID DESC")
  For i = 0 To count - 1
    Input #501, eid, Lastname$, Firstname$, Title$
    Print eid, ",", Lastname$, ",", Firstname$, ",", Title$
  Next
  CloseDB #501

使用Access資料庫的範例

以下是按ID的升序從Microsoft Access 2007範例資料庫學生名冊的表格中載入職務為組長的資料之簡易範例。

  Integer count, i, eid
  String Lastname$, Firstname$, dummy$

  OpenDB #502, Access, "c:\MyDataBase\學生名冊.accdb"
  count = SelectDB(#502, "學生", "職務 = '組長'", "ID")
  For i = 0 To count - 1
    Input #502, eid, dummy$, dummy$, Lastname$, dummy$, Firstname$
    Print eid, ",", Lastname$, ",", Firstname$
  Next
  CloseDB #502

使用Excel活頁簿的範例

以下示範一個從RC+8.0附屬的範例專案「DrawEpsonLogo」中的Excel活頁簿EPSON_LOGO.xls之LOGO工作表,以Point遞增順序讀取X座標大於220的簡單範例。
有關範例中使用的Excel活頁簿,請參閱以下內容。
範例檔案

Integer count, i, p, x, y
String desc$

OpenDB #501, Excel, "C:\EpsonRC80\projects\Samples\Database\DrawEpsonLogo\EPSON_LOGO.xls"
count = SelectDB(#501, "[LOGO$]", "X > 220", "Point ASC")
For i = 0 To count - 1
    Input #501, p, x, y, desc$
    Print "Point", p, ", X:", x, ", Y:", y, ", Descripption:", desc$
Next

'輸出結果
'Point 1, X: 224, Y: 51, Descripption:N1
'Point 2, X: 224, Y: 0, Descripption:N2
'Point 11, X: 224, Y: 51, Descripption:N11