Name of this Application: My Daily Quotations (not sure about the name yet)
Description: Simple program to Display daily quotations/proverbs, etc. entered to an Access database. User selects a date from a MonthCalendar control, if not today's text is displayed.

My Purpose:
The program, when closed from it close button [x], will go to system tray and remind the quotation of the day with a BalloonNotification based on user's preference. For this reason:

1. A preferences form should be added in order to define reminder's delay in minutes. When this form is closed it will save the input to a file, so the balloon will notify according to this setting.

2. A BalloonNotification control should be implemented: Should appear and disappear without user interaction. May disappear after displaying its contents after some seconds. (this can also be controlled from preferences form also).

3. Small Memory usage...

Perfection:
I'm hoping to include an online update feature which will download new/modified access file. Access is not a must, but I do not have any other idea for the time being for replacing it.

Can you help to improve this app? Thanks for your guidance...

Here is the code until now:....

VB Code:
  1. Imports System
  2. Imports System.Drawing
  3. Imports System.Data.OleDb
  4. Imports System.ComponentModel
  5.  
  6. Public Class Form1
  7.     Inherits System.Windows.Forms.Form
  8.     <System.STAThread()> _
  9.     Public Shared Sub Main()
  10.     'Enable XP Styles
  11.         System.Windows.Forms.Application.EnableVisualStyles()
  12.         System.Windows.Forms.Application.Run(New Form1)
  13.     End Sub
  14.  
  15.     Dim cn As OleDbConnection
  16.     Dim cmd As OleDbCommand
  17.     Dim Da As New OleDbDataAdapter
  18.     Dim DtTest As New DataTable("myEntries")
  19.    
  20. Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
  21.  
  22.         Try
  23.             cn = New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=db.mdb;")
  24.            
  25.             cmd = New OleDbCommand("select * from myEntries", cn)
  26.             Me.Da.SelectCommand = cmd
  27.             Da.Fill(Me.DtTest)
  28.  
  29.         Catch Ex As OleDbException 
  30.             MessageBox.Show(Ex.Message)
  31.         Finally
  32.             cn.Close()
  33.         End Try
  34.         ShowQuote()
  35.     End Sub
  36.  
  37.  
  38.     Private Sub ShowQuote()
  39.         Dim Matches As Integer = 0
  40.         For Each Dr As DataRow In Me.DtTest.Rows
  41.  
  42. If CDate(Dr.Item(0)) = CDate(MonthCalendar1.SelectionRange.Start.Date) Then
  43.                 TextBox1.Text = """" + Convert.ToString(Dr.Item(2)) + """"
  44.                 TextBox2.Text = Convert.ToString(Dr.Item(1))
  45.                 Matches += 1
  46.             End If
  47.         Next
  48.  
  49.         If Matches = -1 Then
  50.             MessageBox.Show("No Entries found for selected date! ")
  51.         End If
  52.  
  53.     End Sub
  54.  
  55.     Private Sub Form1_Closing(ByVal sender As Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles MyBase.Closing
  56.         e.Cancel = True
  57.         Me.Hide()
  58.         MonthCalendar1.SetDate(Today)
  59.        
  60. 'BalloonNotification will be used to display today’s quote
  61.  
  62.         InitializeTimer()
  63.     End Sub
  64.  
  65.     Private Sub InitializeTimer()
  66.         Timer1.Interval = 10000 'Value to be modified by user
  67.         Timer1.Enabled = True
  68.     End Sub
  69.  
  70.     Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
  71. 'BalloonNotification will be displayed    
  72.  
  73.     End Sub