home *** CD-ROM | disk | FTP | other *** search
/ Visual Basic 4 Unleashed / Visual_Basic_4_Unleashed_SAMS_Publishing_1995.iso / source / chap35 / custinf.frm < prev    next >
Text File  |  1995-09-10  |  31KB  |  1,053 lines

  1. VERSION 4.00
  2. Begin VB.Form Custinf 
  3.    Appearance      =   0  'Flat
  4.    BackColor       =   &H00C0C0C0&
  5.    Caption         =   "Customer Information"
  6.    ClientHeight    =   6105
  7.    ClientLeft      =   270
  8.    ClientTop       =   1920
  9.    ClientWidth     =   8640
  10.    BeginProperty Font 
  11.       name            =   "MS Sans Serif"
  12.       charset         =   1
  13.       weight          =   700
  14.       size            =   8.25
  15.       underline       =   0   'False
  16.       italic          =   0   'False
  17.       strikethrough   =   0   'False
  18.    EndProperty
  19.    ForeColor       =   &H80000008&
  20.    Height          =   6795
  21.    KeyPreview      =   -1  'True
  22.    Left            =   210
  23.    LinkTopic       =   "Form1"
  24.    MaxButton       =   0   'False
  25.    ScaleHeight     =   6105
  26.    ScaleWidth      =   8640
  27.    Top             =   1290
  28.    Width           =   8760
  29.    Begin VB.CommandButton btnDelCust 
  30.       Caption         =   "Delete Customer"
  31.       Height          =   495
  32.       Left            =   3840
  33.       TabIndex        =   31
  34.       TabStop         =   0   'False
  35.       Top             =   120
  36.       Width           =   1575
  37.    End
  38.    Begin VB.CommandButton btnAddCust 
  39.       Caption         =   "Add Customer"
  40.       Height          =   495
  41.       Left            =   120
  42.       TabIndex        =   30
  43.       TabStop         =   0   'False
  44.       Top             =   120
  45.       Width           =   1935
  46.    End
  47.    Begin VB.CommandButton btnOrder 
  48.       Caption         =   "&Order"
  49.       Height          =   495
  50.       Left            =   6600
  51.       TabIndex        =   29
  52.       TabStop         =   0   'False
  53.       Top             =   120
  54.       Width           =   855
  55.    End
  56.    Begin VB.CommandButton btnAccount 
  57.       Caption         =   "&Account"
  58.       Height          =   495
  59.       Left            =   5520
  60.       TabIndex        =   28
  61.       TabStop         =   0   'False
  62.       Top             =   120
  63.       Width           =   975
  64.    End
  65.    Begin VB.CommandButton btnHelp 
  66.       Caption         =   "&Help"
  67.       Height          =   495
  68.       Left            =   7560
  69.       TabIndex        =   27
  70.       TabStop         =   0   'False
  71.       Top             =   120
  72.       Width           =   855
  73.    End
  74.    Begin VB.CommandButton btnClose 
  75.       Caption         =   "&Close"
  76.       Height          =   495
  77.       Left            =   7680
  78.       TabIndex        =   26
  79.       TabStop         =   0   'False
  80.       Top             =   5040
  81.       Width           =   855
  82.    End
  83.    Begin VB.TextBox txtFirstName 
  84.       Height          =   285
  85.       Left            =   1080
  86.       TabIndex        =   1
  87.       Top             =   720
  88.       Width           =   2535
  89.    End
  90.    Begin VB.TextBox txtLastName 
  91.       Height          =   285
  92.       Left            =   1080
  93.       TabIndex        =   2
  94.       Top             =   1080
  95.       Width           =   2535
  96.    End
  97.    Begin VB.TextBox txtAddrline1 
  98.       Height          =   285
  99.       Left            =   1080
  100.       TabIndex        =   4
  101.       Top             =   1800
  102.       Width           =   2535
  103.    End
  104.    Begin VB.TextBox txtCoName 
  105.       Height          =   285
  106.       Left            =   1080
  107.       TabIndex        =   3
  108.       Top             =   1440
  109.       Width           =   2535
  110.    End
  111.    Begin VB.TextBox txtAddrline2 
  112.       Height          =   285
  113.       Left            =   1080
  114.       TabIndex        =   5
  115.       Top             =   2160
  116.       Width           =   2535
  117.    End
  118.    Begin VB.TextBox txtCity 
  119.       Height          =   285
  120.       Left            =   1080
  121.       TabIndex        =   6
  122.       Top             =   2520
  123.       Width           =   1695
  124.    End
  125.    Begin VB.TextBox txtState 
  126.       Height          =   285
  127.       Left            =   3840
  128.       TabIndex        =   7
  129.       Top             =   2520
  130.       Width           =   615
  131.    End
  132.    Begin VB.TextBox txtCustBal 
  133.       Alignment       =   1  'Right Justify
  134.       BackColor       =   &H00C0C0C0&
  135.       BorderStyle     =   0  'None
  136.       BeginProperty Font 
  137.          name            =   "MS Sans Serif"
  138.          charset         =   1
  139.          weight          =   400
  140.          size            =   18
  141.          underline       =   0   'False
  142.          italic          =   0   'False
  143.          strikethrough   =   0   'False
  144.       EndProperty
  145.       Height          =   435
  146.       Left            =   6840
  147.       Locked          =   -1  'True
  148.       TabIndex        =   25
  149.       TabStop         =   0   'False
  150.       Top             =   960
  151.       Width           =   1455
  152.    End
  153.    Begin VB.TextBox txtSalutation 
  154.       Height          =   285
  155.       Left            =   3840
  156.       TabIndex        =   11
  157.       Top             =   3000
  158.       Width           =   1575
  159.    End
  160.    Begin VB.CommandButton btnFindCust 
  161.       Caption         =   "&Find Customer"
  162.       Height          =   495
  163.       Left            =   2160
  164.       TabIndex        =   24
  165.       TabStop         =   0   'False
  166.       Top             =   120
  167.       Width           =   1575
  168.    End
  169.    Begin VB.TextBox txtCustomerNum 
  170.       Appearance      =   0  'Flat
  171.       BackColor       =   &H00C0C0C0&
  172.       BorderStyle     =   0  'None
  173.       BeginProperty Font 
  174.          name            =   "MS Sans Serif"
  175.          charset         =   1
  176.          weight          =   400
  177.          size            =   18
  178.          underline       =   0   'False
  179.          italic          =   0   'False
  180.          strikethrough   =   0   'False
  181.       EndProperty
  182.       ForeColor       =   &H00C00000&
  183.       Height          =   495
  184.       Left            =   6840
  185.       Locked          =   -1  'True
  186.       TabIndex        =   23
  187.       TabStop         =   0   'False
  188.       Top             =   1560
  189.       Width           =   1215
  190.    End
  191.    Begin VB.TextBox txtWorkPhone 
  192.       Height          =   285
  193.       Left            =   1320
  194.       TabIndex        =   10
  195.       Top             =   3240
  196.       Width           =   1575
  197.    End
  198.    Begin VB.TextBox txtHomePhone 
  199.       Height          =   285
  200.       Left            =   1320
  201.       TabIndex        =   9
  202.       Top             =   2880
  203.       Width           =   1575
  204.    End
  205.    Begin VB.TextBox txtzip 
  206.       Height          =   285
  207.       Left            =   4560
  208.       TabIndex        =   8
  209.       Top             =   2520
  210.       Width           =   855
  211.    End
  212.    Begin VB.TextBox txtCustGenComm 
  213.       DataField       =   "General_Comments"
  214.       DataSource      =   "CustGenComm"
  215.       Height          =   1935
  216.       Left            =   120
  217.       MultiLine       =   -1  'True
  218.       ScrollBars      =   2  'Vertical
  219.       TabIndex        =   12
  220.       Tag             =   "Comment"
  221.       Top             =   3600
  222.       Width           =   7455
  223.    End
  224.    Begin VB.Data CustGenComm 
  225.       Appearance      =   0  'Flat
  226.       Caption         =   "CustGenComm"
  227.       Connect         =   ""
  228.       DatabaseName    =   "C:\VBPROJ\SAMS\VB4DB.MDB"
  229.       Exclusive       =   0   'False
  230.       Height          =   270
  231.       Left            =   3600
  232.       Options         =   0
  233.       ReadOnly        =   0   'False
  234.       RecordsetType   =   1  'Dynaset
  235.       RecordSource    =   "CUSTGENCOMM"
  236.       Top             =   5640
  237.       Visible         =   0   'False
  238.       Width           =   2775
  239.    End
  240.    Begin VB.Label Label11 
  241.       Alignment       =   1  'Right Justify
  242.       Appearance      =   0  'Flat
  243.       BackColor       =   &H00C0C0C0&
  244.       Caption         =   "Contact"
  245.       ForeColor       =   &H80000008&
  246.       Height          =   255
  247.       Left            =   3000
  248.       TabIndex        =   22
  249.       Top             =   3000
  250.       Width           =   735
  251.    End
  252.    Begin VB.Label Label10 
  253.       Alignment       =   1  'Right Justify
  254.       Appearance      =   0  'Flat
  255.       BackColor       =   &H00C0C0C0&
  256.       Caption         =   "Work phone"
  257.       ForeColor       =   &H80000008&
  258.       Height          =   255
  259.       Left            =   120
  260.       TabIndex        =   21
  261.       Top             =   3240
  262.       Width           =   1095
  263.    End
  264.    Begin VB.Label Label9 
  265.       Alignment       =   1  'Right Justify
  266.       Appearance      =   0  'Flat
  267.       BackColor       =   &H00C0C0C0&
  268.       Caption         =   "Home phone"
  269.       ForeColor       =   &H80000008&
  270.       Height          =   255
  271.       Left            =   120
  272.       TabIndex        =   20
  273.       Top             =   2880
  274.       Width           =   1095
  275.    End
  276.    Begin VB.Label Label8 
  277.       Alignment       =   1  'Right Justify
  278.       Appearance      =   0  'Flat
  279.       BackColor       =   &H00C0C0C0&
  280.       Caption         =   "Customer Number"
  281.       BeginProperty Font 
  282.          name            =   "MS Sans Serif"
  283.          charset         =   1
  284.          weight          =   700
  285.          size            =   9.75
  286.          underline       =   0   'False
  287.          italic          =   0   'False
  288.          strikethrough   =   0   'False
  289.       EndProperty
  290.       ForeColor       =   &H80000008&
  291.       Height          =   495
  292.       Left            =   5640
  293.       TabIndex        =   19
  294.       Top             =   1560
  295.       Width           =   975
  296.    End
  297.    Begin VB.Label Label3 
  298.       Alignment       =   1  'Right Justify
  299.       Appearance      =   0  'Flat
  300.       BackColor       =   &H00C0C0C0&
  301.       Caption         =   "Company"
  302.       ForeColor       =   &H80000008&
  303.       Height          =   255
  304.       Left            =   120
  305.       TabIndex        =   18
  306.       Top             =   1440
  307.       Width           =   855
  308.    End
  309.    Begin VB.Label Label2 
  310.       Alignment       =   1  'Right Justify
  311.       Appearance      =   0  'Flat
  312.       BackColor       =   &H00C0C0C0&
  313.       Caption         =   "State/Zip"
  314.       ForeColor       =   &H80000008&
  315.       Height          =   255
  316.       Left            =   2880
  317.       TabIndex        =   17
  318.       Top             =   2520
  319.       Width           =   855
  320.    End
  321.    Begin VB.Label Label7 
  322.       Alignment       =   1  'Right Justify
  323.       Appearance      =   0  'Flat
  324.       BackColor       =   &H00C0C0C0&
  325.       Caption         =   "Current Balance"
  326.       BeginProperty Font 
  327.          name            =   "MS Sans Serif"
  328.          charset         =   1
  329.          weight          =   700
  330.          size            =   9.75
  331.          underline       =   0   'False
  332.          italic          =   0   'False
  333.          strikethrough   =   0   'False
  334.       EndProperty
  335.       ForeColor       =   &H80000008&
  336.       Height          =   495
  337.       Left            =   5640
  338.       TabIndex        =   16
  339.       Top             =   960
  340.       Width           =   975
  341.    End
  342.    Begin VB.Label Label6 
  343.       Alignment       =   1  'Right Justify
  344.       Appearance      =   0  'Flat
  345.       BackColor       =   &H00C0C0C0&
  346.       Caption         =   "City"
  347.       ForeColor       =   &H80000008&
  348.       Height          =   255
  349.       Left            =   120
  350.       TabIndex        =   15
  351.       Top             =   2520
  352.       Width           =   855
  353.    End
  354.    Begin VB.Label Label5 
  355.       Alignment       =   1  'Right Justify
  356.       Appearance      =   0  'Flat
  357.       BackColor       =   &H00C0C0C0&
  358.       Caption         =   "Address"
  359.       ForeColor       =   &H80000008&
  360.       Height          =   255
  361.       Left            =   120
  362.       TabIndex        =   14
  363.       Top             =   1800
  364.       Width           =   855
  365.    End
  366.    Begin VB.Label Label4 
  367.       Alignment       =   1  'Right Justify
  368.       Appearance      =   0  'Flat
  369.       BackColor       =   &H00C0C0C0&
  370.       Caption         =   "Last name"
  371.       ForeColor       =   &H80000008&
  372.       Height          =   255
  373.       Left            =   0
  374.       LinkItem        =   "txtCustLastName"
  375.       TabIndex        =   13
  376.       Top             =   1080
  377.       Width           =   975
  378.    End
  379.    Begin VB.Label Label1 
  380.       Alignment       =   1  'Right Justify
  381.       Appearance      =   0  'Flat
  382.       BackColor       =   &H00C0C0C0&
  383.       Caption         =   "First name"
  384.       ForeColor       =   &H80000008&
  385.       Height          =   255
  386.       Left            =   0
  387.       TabIndex        =   0
  388.       Top             =   720
  389.       Width           =   975
  390.    End
  391.    Begin VB.Menu mnuFile 
  392.       Caption         =   "&File"
  393.       Begin VB.Menu mnuFileExit 
  394.          Caption         =   "E&xit"
  395.       End
  396.    End
  397.    Begin VB.Menu mnuEdit 
  398.       Caption         =   "&Edit"
  399.       Begin VB.Menu mnuEditFind 
  400.          Caption         =   "&Find Customer"
  401.       End
  402.       Begin VB.Menu mnuFileBar1 
  403.          Caption         =   "-"
  404.       End
  405.       Begin VB.Menu mnuEditNew 
  406.          Caption         =   "&Add customer"
  407.       End
  408.       Begin VB.Menu mnuFileBar2 
  409.          Caption         =   "-"
  410.       End
  411.       Begin VB.Menu mnuEditDelete 
  412.          Caption         =   "&Delete customer"
  413.       End
  414.    End
  415.    Begin VB.Menu mnuView 
  416.       Caption         =   "&View"
  417.       Begin VB.Menu mnuViewAccount 
  418.          Caption         =   "&Account Information"
  419.       End
  420.       Begin VB.Menu mnuViewOrder 
  421.          Caption         =   "&Order Form"
  422.       End
  423.    End
  424.    Begin VB.Menu mnuHelp 
  425.       Caption         =   "&Help"
  426.    End
  427. End
  428. Attribute VB_Name = "Custinf"
  429. Attribute VB_Creatable = False
  430. Attribute VB_Exposed = False
  431.  
  432.  
  433.  
  434.  
  435.  
  436. Private Sub btnClose_Click()
  437.     MousePointer = 11 ' hourglass
  438.     Unload Custinf
  439. End Sub
  440.  
  441. Private Sub btnAccount_Click()
  442.     If Len(txtCustomerNum.Text) = 0 Then
  443.         MsgBox ("You must first enter a customer before checking their billing status.")
  444.         Exit Sub
  445.     Else
  446.         MousePointer = 11 ' hourglass
  447.         frmCustAccount.Show 1 'modal
  448.     End If
  449.  
  450.  
  451. End Sub
  452.  
  453.  
  454.  
  455.  
  456.  
  457. Private Sub btnHelp_Click()
  458.     MsgBox ("Before entering any information, use the LOOKUP button to get a customer from the database, or create a new customer by selecting File|New Customer.  Customer information is saved for each field when your cursor leaves the field.")
  459. End Sub
  460.  
  461.  
  462. Private Sub btnOrder_Click()
  463.     If Len(txtCustomerNum.Text) = 0 Then
  464.         MsgBox ("You must first enter a customer before ordering.")
  465.         Exit Sub
  466.     Else
  467.         MousePointer = 11 ' hourglass
  468.         frmOrder.Show 1 'modal
  469.     End If
  470.  
  471. End Sub
  472.  
  473.  
  474.  
  475.  
  476.  
  477.  
  478.  
  479. Private Sub btnFindCust_Click()
  480.         MousePointer = 11 ' hourglass
  481.         frmLookup.Show 1 'modal
  482. End Sub
  483.  
  484.  
  485.  
  486.  
  487.  
  488. Private Sub custmain_Validate(Action As Integer, Save As Integer)
  489.  
  490. End Sub
  491.  
  492. Private Sub Form_Activate()
  493.     ' Reset to the default  pointer when returning to this form.
  494.     MousePointer = 0
  495.  
  496.     ' If there is an active customer,
  497.     ' update the information on the screen.
  498.     If Len(Customer_number) <> 0 Then
  499.         Call UpdateInfo
  500.     End If
  501.     
  502.     ' Reset the mouse pointer to be the
  503.     ' default pointer.  Put the default focus on the
  504.     ' Find Customer button.
  505.     MousePointer = 1
  506.     btnFindCust.SetFocus
  507. End Sub
  508.  
  509.  
  510.  
  511. Private Sub Form_KeyPress(KeyAscii As Integer)
  512. ' While not a Windows standard, the client
  513. ' prefers to use the enter key to move from field to field.
  514. ' This subroutine should trap the keypress and
  515. ' and process all "ENTER" keys as "TAB"
  516.  
  517.     If Me.ActiveControl.Tag <> "Comment" Then
  518.         If KeyAscii = 13 Then
  519.             SendKeys "{tab}"
  520.             KeyAscii = 0
  521.         End If
  522.     End If
  523. End Sub
  524.  
  525.  
  526.  
  527.  
  528.  
  529. Private Sub Form_Load()
  530.     Dim CustDB As Database
  531.     Dim CustCriteria As String
  532.     Dim Custset As Dynaset
  533.     Dim CustTable As Table
  534.     Dim Customer_number
  535.  
  536.     just_deleted = False
  537.  
  538.     'Center the form
  539.     
  540.     Left = (Screen.Width - Width) / 2
  541.     Top = (Screen.Height - Height) / 2
  542.  
  543.     ' Initialize the GenComm data control
  544.     CustGenComm.DatabaseName = Database_name
  545.     CustGenComm.RecordSource = "Select * from CustGenComm where CustomerNum = 0;"
  546.     
  547.     txtCustBal.Visible = False
  548.  
  549. End Sub
  550.  
  551.  
  552.  
  553.  
  554. Private Sub mnuEditDelete_Click()
  555.     Call btnDelCust_Click
  556. End Sub
  557.  
  558. Private Sub mnuEditFind_Click()
  559.     Call btnFindCust_Click
  560. End Sub
  561.  
  562. Private Sub btnDelCust_Click()
  563. Dim CustMainTbl As Table
  564. Dim CustGenCommTbl As Table
  565. Dim CustAccountTbl As Table
  566. Dim CustProdTbl As Table
  567. Dim CustBillAddrTbl As Table
  568. Dim OrdersTbl As Table
  569. Dim CustProdHistTbl As Table
  570. Dim ProdOrdTbl As Table
  571.  
  572. Dim Qcriteria
  573. Dim indexval As Integer
  574. Dim delcust
  575.  
  576.     If Len(Customer_number) = 0 Then
  577.         MsgBox ("Please use the lookup function to find the customer number you wish to delete.")
  578.         Exit Sub
  579.     End If
  580.  
  581.     Set CustMainTbl = CustDB.OpenTable("CUSTMAIN")
  582.     CustMainTbl.Index = "PrimaryKey"
  583.  
  584.     CustMainTbl.Seek "=", Customer_number
  585.     If (CustMainTbl.NoMatch = True) Then
  586.         MsgBox ("Can't find customer " & Customer_number)
  587.         Exit Sub
  588.     Else
  589.         ' successfully read record.
  590.         delcust = MsgBox("REALLY delete customer " & Customer_number & " and ALL the associated information?", vbYesNo, "Delete " & Customer_number)
  591.         If delcust = 6 Then 'yes
  592.             MousePointer = 11 ' hourglass
  593.             
  594.             ' Delete this person from the customer main table
  595.             CustMainTbl.Delete
  596.  
  597.             ' CustGenCommTbl
  598.             ' Delete this person from the general comments table
  599.             Set CustGenCommTbl = CustDB.OpenTable("CUSTGENCOMM")
  600.             
  601.             CustGenCommTbl.Index = "PrimaryKey"
  602.             CustGenCommTbl.Seek "=", Customer_number
  603.             While (CustGenCommTbl.NoMatch = False)
  604.                 CustGenCommTbl.Delete
  605.                 CustGenCommTbl.Seek "=", Customer_number
  606.             Wend
  607.  
  608.             ' CustAccountTbl
  609.             ' Delete this person from the Customer Account table
  610.             Set CustAccountTbl = CustDB.OpenTable("CUSTACCOUNT")
  611.             CustAccountTbl.Index = "CustomerNum"
  612.             CustAccountTbl.Seek "=", Customer_number
  613.             While (CustAccountTbl.NoMatch = False)
  614.                 CustAccountTbl.Delete
  615.                 CustAccountTbl.Seek "=", Customer_number
  616.             Wend
  617.  
  618.             ' CustProdTbl
  619.             ' Delete this person from the Customer Products table
  620.             Set CustProdTbl = CustDB.OpenTable("CustProd")
  621.             CustProdTbl.Index = "CustomerNum"
  622.             CustProdTbl.Seek "=", Customer_number
  623.             While (CustProdTbl.NoMatch = False)
  624.                 CustProdTbl.Delete
  625.                 CustProdTbl.Seek "=", Customer_number
  626.             Wend
  627.  
  628.         
  629.             ' OrdersTbl
  630.             ' Delete this person from the Customer Orders table
  631.             Set OrdersTbl = CustDB.OpenTable("ORDERS")
  632.             OrdersTbl.Index = "CustomerNum"
  633.             OrdersTbl.Seek "=", Customer_number
  634.             While (OrdersTbl.NoMatch = False)
  635.                 OrdersTbl.Delete
  636.                 OrdersTbl.Seek "=", Customer_number
  637.             Wend
  638.    
  639.             '* Delete this person from the Order History
  640.             Set CustProdHistTbl = CustDB.OpenTable("CustProdHist")
  641.             CustDB.Execute ("Delete * From CustProdHist Where CustomerNum = " & Customer_number & ";")
  642.  
  643.             ' ProdOrdTbl
  644.             ' Delete this person from the Product Order table (This is not
  645.             ' used by this application, but was part of the database
  646.             ' conversion; the thought was it would be used someday).
  647.             Set ProdOrdTbl = CustDB.OpenTable("Orders")
  648.             ProdOrdTbl.Index = "PrimaryKey"
  649.             ProdOrdTbl.Seek "=", Customer_number
  650.             While (ProdOrdTbl.NoMatch = False)
  651.                 ProdOrdTbl.Delete
  652.                 ProdOrdTbl.Seek "=", Customer_number
  653.             Wend
  654.  
  655.     
  656.             ' Initialize the GenComm data control
  657.             CustGenComm.RecordSource = "Select * from CustGenComm where CustomerNum = 0;"
  658.             CustGenComm.Refresh
  659.  
  660.       
  661.             ' Initialize the Custmain data control
  662.             Qcriteria = "SELECT * FROM CUSTMAIN WHERE CustomerNum = 0;"
  663.             Set CustmainDynaset = CustDB.CreateDynaset(Qcriteria)
  664.             'custmain.Refresh
  665.  
  666.             Customer_number = 0
  667.  
  668.             ' Blank out all of the fields.
  669.             txtFirstName.Text = ""
  670.             txtLastName.Text = ""
  671.             txtConame.Text = ""
  672.             txtAddrline1.Text = ""
  673.             txtAddrline2.Text = ""
  674.             txtCity.Text = ""
  675.             txtState.Text = ""
  676.             txtHomePhone.Text = ""
  677.             txtZip.Text = ""
  678.             txtHomePhone.Text = ""
  679.             txtWorkPhone.Text = ""
  680.             txtSalutation.Text = ""
  681.             txtCustomerNum.Text = ""
  682.             
  683.             ' Set the indicator for whether this customer has
  684.             ' just been deleted or not so we don't give the
  685.             ' user an message for attempting to do something without
  686.             ' having an active customer
  687.             just_deleted = True
  688.             MousePointer = 0 ' default
  689.         Else
  690.             MsgBox ("Customer " & Customer_number & " NOT deleted.")
  691.         End If
  692.     End If
  693.  
  694. End Sub
  695.  
  696. Private Sub mnuEditNew_Click()
  697.     Call btnAddCust_Click
  698. End Sub
  699.  
  700. Private Sub mnuFileExit_Click()
  701.     Unload Custinf
  702. End Sub
  703.  
  704. Private Sub btnAddCust_Click()
  705. Dim CustMainTbl As Table
  706. Dim Qcriteria
  707. Dim indexval As Integer
  708.  
  709.     ' Look in the customer table for an unused customer number.
  710.     Set CustMainTbl = CustDB.OpenTable("CUSTMAIN")
  711.     CustMainTbl.Index = "PrimaryKey"
  712.     indexval = 1
  713.     CustMainTbl.Seek "=", indexval
  714.     While (CustMainTbl.NoMatch = False)
  715.         indexval = indexval + 1
  716.         CustMainTbl.Seek "=", indexval
  717.     Wend
  718.  
  719.     
  720.     ' Add this new customer to the customer table
  721.     CustMainTbl.AddNew
  722.     CustMainTbl.Fields("CustomerNum") = indexval
  723.     CustMainTbl.Update
  724.  
  725.     ' Make this new customer number the current customer_number
  726.     Customer_number = indexval
  727.  
  728.     txtCustomerNum.Text = Customer_number
  729.  
  730.  
  731.     ' Make this newly created record our current record
  732.     Qcriteria = "SELECT * FROM CUSTMAIN WHERE CustomerNum = " & Customer_number
  733.     Set CustmainDynaset = CustDB.CreateDynaset(Qcriteria)
  734.     'custmain.Refresh
  735.     Call UpdateInfo
  736.  
  737. End Sub
  738.  
  739.  
  740. Private Sub mnuHelp_Click()
  741.     Call btnHelp_Click
  742. End Sub
  743.  
  744. Private Sub mnuViewAccount_Click()
  745.     Call btnAccount_Click
  746. End Sub
  747.  
  748. Private Sub mnuViewOrder_Click()
  749.     Call btnOrder_Click
  750. End Sub
  751.  
  752.  
  753. Private Sub txtAddrline1_LostFocus()
  754.  
  755.     ' If there is nothing in the field, of if nothing has changed,
  756.     ' then do nothing.
  757. '    If Len(txtAddrline1.Text) = 0 Then
  758. '        Exit Sub
  759. '    End If
  760.     If txtAddrline1.DataChanged = True Then
  761.         Call UpdateField(ByVal txtAddrline1.Text, "Address")
  762.     End If
  763.  
  764.  
  765. End Sub
  766.  
  767.  
  768. Private Sub txtAddrline2_LostFocus()
  769.     If txtAddrline2.DataChanged = True Then
  770.         Call UpdateField(ByVal txtAddrline2, "Suite_Apt")
  771.     End If
  772.  
  773. End Sub
  774.  
  775.  
  776. Private Sub txtCity_LostFocus()
  777.     If txtCity.DataChanged = True Then
  778.         Call UpdateField(ByVal txtCity, "City")
  779.     End If
  780.  
  781. End Sub
  782.  
  783.  
  784.  
  785. Private Sub txtCoName_LostFocus()
  786.     If txtConame.DataChanged = True Then
  787.         Call UpdateField(ByVal txtConame, "Company")
  788.     End If
  789.  
  790. End Sub
  791.  
  792.  
  793. Private Sub txtCustGenComm_LostFocus()
  794. Dim CustGenCommDynaset As Dynaset
  795. Dim tmptext ' store value of comment text before creating new record
  796.  
  797.     ' Check to see if a customer has been brought up.  If not, then do nothing.
  798.     If Len(Customer_number) <> 0 Then
  799.         'Check to see if this is a new record for this customer.  If so,
  800.         'add it to the database.
  801.         If CustGenComm.Recordset.RecordCount = 0 Then
  802.             tmptext = txtCustGenComm.Text
  803.  
  804.             ' Get a record for the dynaset and then create it.
  805.             Qcriteria = "SELECT * FROM CustGenComm"
  806.             Set CustGenCommDynaset = CustDB.CreateDynaset(Qcriteria)
  807.             CustGenComm.Refresh     ' Update the data control
  808.     
  809.             ' Add a new record to the dynaset and update the fields
  810.             CustGenCommDynaset.AddNew
  811.             
  812.             CustGenCommDynaset.Fields("CustomerNum") = Customer_number
  813.  
  814.             CustGenCommDynaset.Fields("General_Comments") = tmptext
  815.             CustGenCommDynaset.Update
  816.  
  817.             Qcriteria = "SELECT * FROM CUSTGENCOMM WHERE CustomerNum = " & Customer_number
  818.             CustGenComm.RecordSource = Qcriteria
  819.  
  820.         Else
  821.             If Len(txtCustGenComm.Text) > 0 Then
  822.                 CustGenComm.Recordset.Edit
  823.                 CustGenComm.Recordset.Fields("General_Comments") = txtCustGenComm
  824.                 CustGenComm.Recordset.Update
  825.             Else
  826.                 CustGenComm.Recordset.Delete
  827.             End If
  828.         End If
  829.         CustGenComm.Refresh     ' update the data control
  830.     End If
  831. End Sub
  832.  
  833.  
  834. Private Sub txtCustomerNum_KeyPress(KeyAscii As Integer)
  835. ' While not a Windows standard, the client
  836. ' prefers to use the enter key to move from field to field.
  837. ' This subroutine should trap the keypress and
  838. ' and process all "ENTER" keys as "TAB"
  839.  
  840.     If KeyAscii = 13 Then
  841.         SendKeys "{tab}"
  842.         KeyAscii = 0
  843.     End If
  844.  
  845. End Sub
  846.  
  847. Private Sub txtCustomerNum_LostFocus()
  848. Dim mboxret
  849.  
  850.     If txtCustomerNum.Text <> Customer_number Then
  851.         mboxret = MsgBox("You can not change a customer's number.", MB_ICONEXCLAMATION)
  852.         txtCustomerNum.Text = Customer_number
  853.     End If
  854. End Sub
  855.  
  856.  
  857.  
  858.  
  859. Private Sub txtFirstName_LostFocus()
  860.     If txtFirstName.DataChanged = True Then
  861.         Call UpdateField(ByVal txtFirstName, "First_Name")
  862.     End If
  863.  
  864. End Sub
  865.  
  866.  
  867. Private Sub txtHomePhone_LostFocus()
  868.     If txtHomePhone.DataChanged = True Then
  869.         Call UpdateField(ByVal txtHomePhone, "Home_Phone")
  870.     End If
  871.  
  872. End Sub
  873.  
  874. Private Sub txtLastName_LostFocus()
  875. Dim Qcriteria
  876. Dim tmpname
  877. Dim namechg
  878.  
  879.     ' If there is nothing in the field, then do nothing.
  880.     'If Len(txtLastName.Text) = 0 Then
  881.     '    Exit Sub
  882.     'End If
  883.  
  884.     ' No change, nothing to do to the field
  885.     If (txtLastName.DataChanged) = True Then
  886.         Call UpdateField(ByVal txtLastName, "Last_Name")
  887.     End If
  888.  
  889. End Sub
  890.  
  891.  
  892. Private Sub txtSalutation_LostFocus()
  893.     If txtSalutation.DataChanged = True Then
  894.         Call UpdateField(ByVal txtSalutation, "Whose_Phone")
  895.     End If
  896.  
  897. End Sub
  898.  
  899.  
  900. Private Sub txtState_LostFocus()
  901.     If txtState.DataChanged = True Then
  902.         Call UpdateField(ByVal txtState, "State")
  903.     End If
  904.  
  905. End Sub
  906.  
  907.  
  908. Private Sub txtWorkPhone_LostFocus()
  909.     If txtWorkPhone.DataChanged = True Then
  910.         Call UpdateField(ByVal txtWorkPhone, "Work_Phone")
  911.     End If
  912.  
  913. End Sub
  914.  
  915.  
  916. Private Sub txtZip_LostFocus()
  917.     If txtZip.DataChanged = True Then
  918.         Call UpdateField(ByVal txtZip, "Zip")
  919.     End If
  920.  
  921. End Sub
  922.  
  923. ' This subroutine Updates any field in the CUSTMAIN table.
  924. Private Sub UpdateField(ByVal FldText As String, fldName As String)
  925. Dim SqlUpdateCustmain
  926.     If (Len(Customer_number) = 0 Or Customer_number = 0) And Len(FldText) <> 0 Then
  927.         MsgBox ("You must Find or Create a new customer before adding data.")
  928.         Exit Sub
  929.     End If
  930.  
  931.     If Len(FldText) <> 0 Then
  932.         ' Change the value in the table field
  933.         SqlUpdateCustmain = "UPDATE CUSTMAIN SET " & fldName & " = """ & FldText & """"
  934.     Else
  935.         ' Set the value in the table field to blank
  936.         SqlUpdateCustmain = "UPDATE CUSTMAIN SET " & fldName & " = NULL"
  937.     End If
  938.  
  939.     ' Put the rest of the update string on.
  940.     SqlUpdateCustmain = SqlUpdateCustmain & " WHERE CustomerNum = " & Customer_number
  941.  
  942.     CustDB.Execute SqlUpdateCustmain
  943.     
  944.  
  945. End Sub
  946.  
  947. Private Sub UpdateInfo()
  948.  
  949.         If just_deleted = True Then
  950.             just_deleted = False
  951.             Exit Sub
  952.         End If
  953.     
  954.         ' If there's nobody in the database, then clean out the fields.
  955.         If Customer_number = 0 Or Customer_number = Null Then
  956.             Exit Sub
  957.         End If
  958.  
  959.         'Check for existence of data in the fields to
  960.         ' avoid the invalid use of null error.
  961.         If IsNull(CustmainDynaset.Fields("First_Name")) = False Then
  962.             txtFirstName = CustmainDynaset.Fields("First_Name")
  963.         Else
  964.             txtFirstName.Text = ""
  965.         End If
  966.         
  967.         If IsNull(CustmainDynaset.Fields("Last_Name")) = False Then
  968.             txtLastName = CustmainDynaset.Fields("Last_Name")
  969.         Else
  970.             txtLastName.Text = ""
  971.         End If
  972.  
  973.         If IsNull(CustmainDynaset.Fields("Current_Balance")) = False Then
  974.             txtCustBal.Visible = True
  975.             txtCustBal = CustmainDynaset.Fields("Current_Balance")
  976.         Else
  977.             txtCustBal.Visible = False
  978.         End If
  979.  
  980.         If IsNull(CustmainDynaset.Fields("Company")) = False Then
  981.             txtConame = CustmainDynaset.Fields("Company")
  982.         Else
  983.             txtConame.Text = ""
  984.         End If
  985.  
  986.         If IsNull(CustmainDynaset.Fields("Address")) = False Then
  987.             txtAddrline1 = CustmainDynaset.Fields("Address")
  988.         Else
  989.             txtAddrline1.Text = ""
  990.         End If
  991.         
  992.         ' In txtAddr2, put in either the Suite_Apt info or PO box,
  993.         ' since only one or the other will have data if either of
  994.         ' them have any data.
  995.         If IsNull(CustmainDynaset.Fields("Suite_Apt")) = False Then
  996.             txtAddrline2 = CustmainDynaset.Fields("Suite_Apt")
  997.         Else
  998.                 txtAddrline2.Text = ""
  999.         End If
  1000.  
  1001.         If IsNull(CustmainDynaset.Fields("City")) = False Then
  1002.             txtCity = CustmainDynaset.Fields("City")
  1003.         Else
  1004.             txtCity.Text = ""
  1005.         End If
  1006.  
  1007.         If IsNull(CustmainDynaset.Fields("State")) = False Then
  1008.             txtState = CustmainDynaset.Fields("State")
  1009.         Else
  1010.             txtState.Text = ""
  1011.         End If
  1012.  
  1013.         If IsNull(CustmainDynaset.Fields("Zip")) = False Then
  1014.             txtZip = CustmainDynaset.Fields("Zip")
  1015.         Else
  1016.             txtZip.Text = ""
  1017.         End If
  1018.  
  1019.         If IsNull(CustmainDynaset.Fields("Home_Phone")) = False Then
  1020.             txtHomePhone = CustmainDynaset.Fields("Home_Phone")
  1021.         Else
  1022.             txtHomePhone.Text = ""
  1023.         End If
  1024.  
  1025.         If IsNull(CustmainDynaset.Fields("Work_Phone")) = False Then
  1026.             txtWorkPhone = CustmainDynaset.Fields("Work_Phone")
  1027.         Else
  1028.             txtWorkPhone.Text = ""
  1029.         End If
  1030.  
  1031.         If IsNull(CustmainDynaset.Fields("Whose_Phone")) = False Then
  1032.             txtSalutation = CustmainDynaset.Fields("Whose_Phone")
  1033.         Else
  1034.             txtSalutation.Text = ""
  1035.         End If
  1036.         
  1037.         If IsNull(CustmainDynaset.Fields("CustomerNum")) = False Then
  1038.             txtCustomerNum = CustmainDynaset.Fields("CustomerNum")
  1039.         Else
  1040.             txtCustomerNum.Text = 0
  1041.         End If
  1042.         Customer_number = txtCustomerNum.Text
  1043.  
  1044.         ' Update the customer comment field
  1045.         CustGenComm.RecordSource = "Select * from CustGenComm where CustomerNum = " & Customer_number & ";"
  1046.         CustGenComm.Refresh
  1047.  
  1048.         
  1049.  
  1050. End Sub
  1051.  
  1052.  
  1053.