home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 1996 February / PCWK0296.iso / po7_win / object10 / quote.bas < prev    next >
BASIC Source File  |  1994-11-30  |  3KB  |  115 lines

  1. Option Explicit
  2.  
  3. Global UserName$
  4. Global Password$
  5. Global Connect$
  6. Global DatabaseName$
  7.  
  8. Global OraSession As Object
  9. Global OraDatabase As Object
  10.  
  11. ' Show parameters
  12. Global Const MODAL = 1
  13. Global Const MODELESS = 0
  14.  
  15. Sub CenterForm (f As Form)
  16.  
  17. ' Center the specified form within the screen
  18.  
  19.     f.Move (Screen.Width - f.Width) \ 2, (Screen.Height - f.Height) \ 2
  20.  
  21. End Sub
  22.  
  23. Sub FillLists ()
  24.  
  25. Dim SQL$
  26.  
  27.     Dim mydyn As Object
  28.     
  29.     ' load the categories list box
  30.  
  31.     ' create a dynaset of the quote categories
  32.     SQL$ = "select category from qcats order by category"
  33.     Set mydyn = OraDatabase.DbCreateDynaset(SQL$, 0&)
  34.     mydyn.DbMoveFirst
  35.  
  36.     ' start with an "any"
  37.     frmQuote.catlist.AddItem "any"
  38.     frmQuote.catlist.ListIndex = 0
  39.  
  40.     While (0 = mydyn.EOF)
  41.         frmQuote.catlist.AddItem mydyn.Fields("category")
  42.         mydyn.DbMoveNext
  43.     Wend
  44.  
  45.     
  46.     ' load the person list box
  47.  
  48.     ' create a dynaset of the quote categories
  49.     SQL$ = "select pname from qpersons order by pname"
  50.     Set mydyn = OraDatabase.DbCreateDynaset(SQL$, 0&)
  51.     mydyn.DbMoveFirst
  52.  
  53.     ' start with an "any"
  54.     frmQuote.perlist.AddItem "any"
  55.     frmQuote.perlist.ListIndex = 0
  56.  
  57.     While (0 = mydyn.EOF)
  58.         frmQuote.perlist.AddItem mydyn.Fields("pname")
  59.         mydyn.DbMoveNext
  60.     Wend
  61.  
  62. End Sub
  63.  
  64. Sub QueryQuotes ()
  65.     
  66.  Dim where$, SQL$
  67.  
  68.     ' construct a new sql statement
  69.  
  70.     where$ = ""       ' where clause
  71.  
  72.     ' when we have a constraint we enforce it by using a where clause
  73.     ' the where clause uses sub-queries to translate the constraints from
  74.     ' the user-friendly information (such as category name) to the numeric index
  75.     ' that is used as a key between the tables
  76.  
  77.     If frmQuote.catlist.ListIndex <> -1 And frmQuote.catlist <> "any" Then
  78.         ' category constraint
  79.         where$ = " where quotes.catnum = (select catnum from qcats where category = '"
  80.         where$ = where$ + frmQuote.catlist
  81.         where$ = where$ + "')"
  82.     End If
  83.     If frmQuote.perlist.ListIndex <> -1 And frmQuote.perlist <> "any" Then
  84.         ' person constraint
  85.         If Len(where$) = 0 Then
  86.             ' first where clause
  87.             where$ = " where "
  88.         Else
  89.             ' subsequent where clause
  90.             where$ = where$ + " and "
  91.         End If
  92.         where$ = where$ + "quotes.pnum = (select pnum from qpersons where pname = '"
  93.         where$ = where$ + frmQuote.perlist
  94.         where$ = where$ + "')"
  95.     End If
  96.  
  97.     ' now put together the sql statement
  98.     SQL$ = "select * from quotes" + where$
  99.  
  100.     ' Refresh the data control
  101.     ' form2.TheQuote = ""
  102.     frmQuote.quotedata.RecordSource = SQL$
  103.     frmQuote.quotedata.Refresh
  104.  
  105.     If frmQuote.quotedata.Recordset.RecordCount < 1 Then
  106.         frmQuote.TheQuote.Visible = False
  107.         frmQuote.cmdDeleteQuote.Enabled = False
  108.     Else
  109.         frmQuote.TheQuote.Visible = True
  110.         frmQuote.cmdDeleteQuote.Enabled = True
  111.     End If
  112.  
  113. End Sub
  114.  
  115.