Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: VB.NET: Kalenteriin tapahtumia (VB)

Sivun loppuun

ZuBer [25.11.2010 18:15:57]

#

Olen aloittelija, ja toivon että saan asiallisia vastauksia.
Eli olen alkanut tekemään kalenteria, mutta en keksi, miten merkintöja ja tapahtumia voisi tallentaa. Voisiko joku kohtuu perusteellisesti neuvoa, miten saisin homman toimimaan.(Mieleeni on jäänyt Nea, joka aina jaksaa aloittelijoitakin neuvoa, jos vaikka hän tulisi apuun.) Käytän objektia nimeltä MonthCalendar.

(Mod. huom: Älä nosta aiheita turhilla viesteillä! Aihe ei todellakaan näytä alle kahdessa tunnissa hukkuvan: näkyy uusissa keskusteluissa ainakin päivän ja VB-alueen listauksen ensimmäisellä sivulla monta viikkoa.)

neau33 [26.11.2010 02:18:28]

#

Morjens taas ZuBer!

tässä sulle yksinkertainen esimerkki...jutska muuttuu paljon jännittävämmäksi jos yhdistät viritelmään OnTimer-Hälytys toiminnon...

'Projektiin refernssi:
'Microsoft ActiveX Data Objects Library 2.8 Library
'(C:\Program Files\Common Files\System\ado\msado15.dll)

Private Tietokanta As New ADODB.Connection
Private Tietueet As New ADODB.Recordset
Private TaulunNimi As String
Private KokoPolku As String
Private tila As Integer
Private ValittuPvm As Date

Private Type KalenteriTyyppi
    Pvm As Date
    Klo As Date
    Muistutus As String
End Type

Dim Kalenteri() As KalenteriTyyppi

Private Sub Form_Load()

    Dim TietokannanNimi As String
    Dim TiedostoLaajennin As String
    TiedostoLaajennin = "mdb"
    TietokannanNimi = "Tietokanta"
    Dim KansionPolku As String
    KansionPolku = Environ("userprofile") & "\Työpöytä"
    KokoPolku = KansionPolku & "\" & _
    TietokannanNimi & "." & TiedostoLaajennin
    TaulunNimi = "Taulu"
    Tietokanta.ConnectionString = _
    "PROVIDER=Microsoft.Jet.OLEDB.4.0;" _
    & "Data Source=" & KokoPolku

    ValittuPvm = DateSerial(Year(Now), Month(Now), Day(Now))

    Dim PvmTaulukko() As String
    PvmTaulukko = Split(CStr(DateSerial( _
    Year(Now), Month(Now), Day(Now))), ".")
    Dim Pvm As String
    Pvm = PvmTaulukko(1) & "-" & _
    PvmTaulukko(0) & "-" & PvmTaulukko(2)
    Erase PvmTaulukko

    TuoTiedotTietokannasta _
    "Select* From [" & TaulunNimi _
    & "] Where Pvm=#" & Pvm & "#"

    TextBox1.Text = ""

End Sub

Private Sub ComboBox1_Change()

    If ComboBox1.ListIndex > 0 Then
        tila = 1
        TextBox1.Text = Kalenteri( _
        ComboBox1.ListIndex - 1).Muistutus
        AsetaKellonaika CStr(Kalenteri( _
        ComboBox1.ListIndex - 1).Klo)
        MonthView1.Year = Year(Kalenteri( _
        ComboBox1.ListIndex - 1).Pvm)
        MonthView1.Month = Month(Kalenteri( _
        ComboBox1.ListIndex - 1).Pvm)
        MonthView1.Day = Day(Kalenteri( _
        ComboBox1.ListIndex - 1).Pvm)
    Else
        tila = 0
        TextBox1.Text = ""
        AsetaKellonaika CStr(Time)
        MonthView1.Year = Year(Now)
        MonthView1.Month = Month(Now)
        MonthView1.Day = Day(Now)
    End If

End Sub

Private Sub Button2_Click()

    tila = 1:
    Dim PvmTaulukko() As String

    PvmTaulukko = Split(CStr(DateSerial( _
    Year(ValittuPvm), Month(ValittuPvm), Day(ValittuPvm))), ".")
    Dim Pvm As String
    Pvm = PvmTaulukko(1) & "-" & _
    PvmTaulukko(0) & "-" & PvmTaulukko(2)

    TuoTiedotTietokannasta "Select* From [" & TaulunNimi _
    & "] Where Pvm=#" & Pvm & "#"

End Sub

Private Sub Button3_Click()

    TextBox1.Text = "": tila = 0
    ComboBox1.ListIndex = 0
    MonthView1.Year = Year(Now)
    MonthView1.Month = Month(Now)
    MonthView1.Day = Day(Now)

End Sub

Private Sub MonthView1_DateClick(ByVal DateClicked As Date)
     ValittuPvm = DateClicked
End Sub


Private Sub CommandButton1_Click()

    If TextBox1.Text <> "" And tila = 0 Then

        Tietokanta.Open
        Tietueet.Open "Select* From [" & _
        TaulunNimi & "]", Tietokanta, adOpenDynamic, adLockOptimistic

        If Not Tietueet.BOF And Tietueet.EOF Then
            Tietueet.MoveLast
        End If

        Tietueet.AddNew
        Tietueet.Fields(1).Value = DateSerial( _
        MonthView1.Year, MonthView1.Month, MonthView1.Day)
        Tietueet.Fields(2).Value = _
        TimeSerial(Val(TextBox2.Text), Val(TextBox3), 0)
        Tietueet.Fields(3).Value = TextBox1.Text
        Tietueet.Update
        Tietueet.Close
        Tietokanta.Close
        TextBox1.Text = ""

    End If

End Sub

Private Sub SpinButton1_Change()

    TextBox2.Text = SpinButton1.Value

End Sub

Private Sub SpinButton2_Change()
    TextBox3.Text = CStr(SpinButton2.Value / 10)
End Sub

Private Sub TextBox3_Change()

    TextBox3.Text = Replace(TextBox3.Text, ",", "")
    If Len(TextBox3.Text) = 1 Then
        TextBox3.Text = TextBox3.Text & "0"
    End If

End Sub

Sub TuoTiedotTietokannasta(ByVal Sql As String)

    Tietokanta.Open
    Tietueet.Open Sql, Tietokanta
    TextBox1.Text = ""

    If Not Tietueet.BOF And Tietueet.EOF Then
        Tietueet.MoveFirst
    End If

    Erase Kalenteri
    ComboBox1.Clear

    ComboBox1.AddItem ""
    Dim Laskuri As Integer

    Do While Not Tietueet.EOF

        Dim ulottuvuus As Integer
        On Error Resume Next
        ulottuvuus = UBound(Kalenteri)

        If Err <> 0 Then
            Err.Clear
            On Error GoTo 0
            ReDim Kalenteri(0)
        Else
            ReDim Kalenteri(UBound(Kalenteri) + 1)
        End If

        Laskuri = Laskuri + 1
        'Huom! Kenttä Tietueet.Fields(0) on laskuri...
        Kalenteri(UBound( _
        Kalenteri)).Pvm = Tietueet.Fields(1).Value
        Kalenteri(UBound( _
        Kalenteri)).Klo = Tietueet.Fields(2).Value
        Kalenteri(UBound( _
        Kalenteri)).Muistutus = Tietueet.Fields(3).Value
        ComboBox1.AddItem CStr(Laskuri) & ". Muistutus"
        Tietueet.MoveNext

    Loop

    Tietueet.Close: Tietokanta.Close
    If ComboBox1.ListCount > 0 Then
        ComboBox1.ListIndex = 1
    End If
    ComboBox1.ListIndex = 0

End Sub


Sub AsetaKellonaika(ByVal Aika As String)

    Dim ajat() As String
    ajat = Split(Aika, ":")
    SpinButton1.Value = Val(ajat(0))
    SpinButton2.Value = Val(ajat(1))

    Erase ajat

End Sub

en ole testannut jutskaa VB:llä mutta täältä voi impata VBA-version

ZuBer [26.11.2010 08:35:06]

#

Kiitos paljon! Pitää testailla.

ZuBer [26.11.2010 16:48:06]

#

Laitanko tuon kaiken koodin Form1:seen?
EDIT: Visual Basicista ei löydy SpinButtonia eikä MonthWiewiä, mitä tilalle?

neau33 [26.11.2010 20:53:36]

#

Morjens taas ZuBer!

Kyllä, copy/paskanna koodi Form1:lle (koodissa on pari pikku bugia, mutta niistä myöhemmin...)

SpinButton kuuluu VB6 Pro/Enterprise versioissa peruspakettiin.
(Outrider SpinButton Control Spin32.ocx 1.00.0044)
MonthView-kontrolli löytyy ainakin Visual Basic 6.0 SP6-paketista (Spin32 & MonthView ovat osana mscomctl2.ocx:ää)

Imppaa täältä VB6.0 SP6

Tämä voi auttaa ongelmiin, kun asentelet tuotoksiasi toisiin koneisiin.

Imppaaa täältä tietoturvapäivitys, joka asettaa kill-bitit mm. Hierachical Flex Grid-kontrollille...

Täältä voit impata SpinButton.ocx aivan erikseen...
mikäli järjestelmäsi on 32-bittinen niin kopioi Spin32.ocx \WINDOWS\System32 -kansioon, klikkaa Käynnistä -> Suorita, kirjoita laatikkoon: regsvr32 C:\Windows\system32\spin32.ocx & klikkaa OK-nappia.
Mikäli järjestelmäsi sattuu olemaan 64-bittinen niin täältä löytyy ohjeita...

tässä vielä muutettu koodi mikäli imuroit Spin32.ocx:n singlenä...

'Projektiin refernssi:
'Microsoft ActiveX Data Objects Library 2.8 Library
'(C:\Program Files\Common Files\System\ado\msado15.dll)
'Lomakkeen ohjauobjektit:
'MonthView, ComboBox; TextBox & 3 Nappia,
Private Tietokanta As New ADODB.Connection
Private Tietueet As New ADODB.Recordset
Private TaulunNimi As String
Private KokoPolku As String
Private tila As Integer
Private ValittuPvm As Date
Private SpinValue1 As Integer
Private SpinValue2 As Integer
Private Const SpinMin = 0
Private Const SpinMax1 = 24
Private Const SpinMax2 = 59

Private Sql As String

Private Type KalenteriTyyppi
   Pvm As Date
   Klo As Date
   Muistutus As String
End Type

Dim Kalenteri() As KalenteriTyyppi

Private Sub Form_Load()

   Dim KansionPolku As String
   KansionPolku = Replace( _
   ThisWorkbook.FullName, _
   ThisWorkbook.Name, "")
   KokoPolku = KansionPolku & "Tietokanta.mdb"
   TaulunNimi = "Taulu"
   Tietokanta.ConnectionString = _
   "PROVIDER=Microsoft.Jet.OLEDB.4.0;" _
   & "Data Source=" & KokoPolku

   ValittuPvm = DateSerial( _
   Year(Now), Month(Now), Day(Now))

   Dim PvmTaulukko() As String
   PvmTaulukko = Split(CStr(DateSerial( _
   Year(Now), Month(Now), Day(Now))), ".")
   Dim Pvm As String
   Pvm = PvmTaulukko(1) & "-" & _
   PvmTaulukko(0) & "-" & PvmTaulukko(2)
   Erase PvmTaulukko
   AsetaKellonaika CStr(Time)
   TuoTiedotTietokannasta _
   "Select* From [" & TaulunNimi _
   & "] Where Pvm=#" & Pvm & "#"

   Text1.Text = ""
   Text2.Locked = True
   Text3.Locked = True

End Sub

Private Sub ComboBox1_Change()

   Dim ajat() As String

   If ComboBox1.ListIndex > 0 Then
      tila = 1
      Text1.Text = Kalenteri( _
      ComboBox1.ListIndex - 1).Muistutus
      AsetaKellonaika CStr(Kalenteri( _
      ComboBox1.ListIndex - 1).Klo)

      MonthView1.Year = Year(Kalenteri( _
      ComboBox1.ListIndex - 1).Pvm)
      MonthView1.Month = Month(Kalenteri( _
      ComboBox1.ListIndex - 1).Pvm)
      MonthView1.Day = Day(Kalenteri( _
      ComboBox1.ListIndex - 1).Pvm)
   Else
      tila = 0
      Text1.Text = ""
      AsetaKellonaika CStr(Time)
      MonthView1.Year = Year(Now)
      MonthView1.Month = Month(Now)
      MonthView1.Day = Day(Now)
   End If

End Sub

Private Sub Command2_Click()

   tila = 1:
   Dim PvmTaulukko() As String

   PvmTaulukko = Split(CStr(DateSerial( _
   Year(ValittuPvm), Month(ValittuPvm), Day(ValittuPvm))), ".")
   Dim Pvm As String
   Pvm = PvmTaulukko(1) & "-" & _
   PvmTaulukko(0) & "-" & PvmTaulukko(2)

   TuoTiedotTietokannasta "Select* From [" & TaulunNimi _
   & "] Where Pvm=#" & Pvm & "#"

End Sub

Private Sub Command3_Click()

   Text1.Text = "": tila = 0
   ComboBox1.ListIndex = 0
   MonthView1.Year = Year(Now)
   MonthView1.Month = Month(Now)
   MonthView1.Day = Day(Now)

End Sub

Private Sub MonthView1_DateClick(ByVal DateClicked As Date)
   ValittuPvm = DateClicked
End Sub

Private Sub Command1_Click()

   If Text1.Text <> "" And tila = 0 Then

      Tietokanta.Open
      Tietueet.Open "Select* From [" & _
      TaulunNimi & "]", Tietokanta, adOpenDynamic, adLockOptimistic

      If Not Tietueet.BOF And Tietueet.EOF Then
         Tietueet.MoveLast
      End If

      Tietueet.AddNew
      Tietueet.Fields(1).Value = DateSerial( _
      MonthView1.Year, MonthView1.Month, MonthView1.Day)
      Tietueet.Fields(2).Value = _
      TimeSerial(Val(Text2.Text), Val(Text3), 0)
      Tietueet.Fields(3).Value = Text1.Text
      Tietueet.Update
      Tietueet.Close
      Tietokanta.Close
      Text1.Text = ""
      ValittuPvm = DateSerial( _
      Year(Now), Month(Now), Day(Now))
      MonthView1.Value = ValittuPvm
      AsetaKellonaika CStr(Time)

   End If

End Sub

Private Sub SpinButton1_SpinDown()

   If SpinValue1 > SpinMin Then
      SpinValue1 = SpinValue1 - 1
   End If
   Text2.Text = CStr(SpinValue1)

End Sub

Private Sub SpinButton1_SpinUp()

   If SpinValue1 < SpinMax1 Then
      SpinValue1 = SpinValue1 + 1
   End If
   Text2.Text = CStr(SpinValue1)

End Sub

Private Sub SpinButton2_SpinDown()

   If SpinValue2 > SpinMin Then
      SpinValue2 = SpinValue2 - 1
   End If
   Text3.Text = Replace(CStr( _
   SpinValue2 / 10), ",", "")

End Sub

Private Sub SpinButton2_SpinUp()

   If SpinValue2 < SpinMax2 Then
      SpinValue2 = SpinValue2 + 1
   End If
   Text3.Text = Replace(CStr( _
   SpinValue2 / 10), ",", "")

End Sub

Private Sub Text2_Change()

   If Text1.Text = "24" And _
   Text2.Text <> "00" Then
      Text2.Text = "00"
      Spin2Value = 0
   End If

End Sub

Private Sub Text3_Change()

   If Len(Text2.Text) = 1 Then
      Text2.Text = Text2.Text & "0"
   End If
   If Text1.Text = "24" And _
   Text2.Text <> "00" Then
      Text1.Text = "0"
      SpinValue1 = 0
   End If

End Sub

Sub TuoTiedotTietokannasta(ByVal Sql As String)

   Text1.Text = "": Tietokanta.Open
   Tietueet.Open Sql, Tietokanta

   If Not Tietueet.BOF And Tietueet.EOF Then
      Tietueet.MoveFirst
   End If

   Erase Kalenteri
   ComboBox1.Clear

   ComboBox1.AddItem ""
   Dim Laskuri As Integer

   Do While Not Tietueet.EOF

      Dim ulottuvuus As Integer
      On Error Resume Next
      ulottuvuus = UBound(Kalenteri)

      If Err <> 0 Then
         Err.Clear
         On Error GoTo 0
         ReDim Kalenteri(0)
      Else
         ReDim Kalenteri(UBound(Kalenteri) + 1)
      End If

      Laskuri = Laskuri + 1
      'Huom! Kenttä Tietueet.Fields(0)
      'on taulun tietuelaskuri...
      Kalenteri(UBound( _
      Kalenteri)).Pvm = Tietueet.Fields(1).Value
      Kalenteri(UBound( _
      Kalenteri)).Klo = Tietueet.Fields(2).Value
      Kalenteri(UBound( _
      Kalenteri)).Muistutus = Tietueet.Fields(3).Value
      ComboBox1.AddItem CStr(Laskuri) & ". Muistutus"
      Tietueet.MoveNext

   Loop

   Tietueet.Close: Tietokanta.Close
   ComboBox1.ListIndex = 0

End Sub

Sub AsetaKellonaika(ByVal Aika As String)

   Dim ajat() As String
   ajat = Split(Aika, ":")
   SpinValue1 = Val(ajat(0))
   SpinValue2 = Val(ajat(1))
   Text2.Text = CStr(SpinValue1)
   Text3.Text = Replace(CStr( _
   SpinValue2 / 10), ",", "")
   Erase ajat

End Sub
MS Access - esimerkki tietokanta
Nimi: Tietokanta

Taulut
Nimi: Taulu

Taulun kentät
Nimi: nro (perusavain, laskuri)
Nimi: Pvm (Pvm./Klo, syöttörajoite: lyhyt pvm.)
Nimi: Aika (Pvm./Klo, syöttörajoite: lyhyt klo.)
Nimi: Muistutus (Memo)

ZuBer [27.11.2010 09:39:59]

#

Minulla on Visual Basicin uusin versio, joten toimivatko nuo kaikki jutut siinä?

Metabolix [27.11.2010 12:54:11]

#

Onko sinulla siis klassisen Visual Basicin uusin versio (VB6) vai Microsoftin uusin VB.Net-kehitysympäristö eli Visual Basic 2010 Express? Klassinen VB ja VB.Net ovat kaksi aivan eri asiaa.

ZuBer [27.11.2010 13:18:38]

#

Visual Basic 2010. :D

neau33 [27.11.2010 21:04:53]

#

Morjens taas ZuBer!

ALUKSI:
Kun puhut kalkkiksille niin VB on VB6 (tai vanhempi) ja VB.NET on VB 2002 - 2010 -> tulevaisuus(Visul Basic 2002 julkaistiin nimellä VB.NET 2002)
Elikä liitä aiheen otsikkoon joko (VB),(VBA) tai (VB.NET) niin kalkkiskin tietää missä mennään...

Esimerkin tietokanta-malli (MSAccess)
Tietokannan tulee sijaita samassa kansiossa, kuin Projektista luotava .exe-tiedosto
(Designerin Debuggerilla ajettaessa: ..\Bin\Debug\ tai ..\Bin\Release\)

Tietokanta
Nimi: Tietokanta

Taulut
Nimi: Taulu

Taulun kentät
Nimi: nro (perusavain, laskuri)
Nimi: Pvm (Pvm./Klo, syöttörajoite: lyhyt pvm.)
Nimi: Aika (Pvm./Klo, syöttörajoite: lyhyt klo.)
Nimi: Muistutus (Memo)
'
' Created by SharpDevelop.
' User: Nea Uusitalo
' Date: 27.11.2010
' Time: 11:05
'

'Päälomakkeelle:
'1 MonthCalendar-kontrolli (monthCalendar1)
'2 NumericUpDown-kontrollia (numericUpDown1 & numericUpDown2)
'(Minimum=0,numericUpDown1.Maximum=24, numericUpDown2.Maximum=59)
'2 labellia (label1 & label2)
'1 TextBox (textBox1, Multiline=True)
'aseta labellit & numericUpDown-kontrollit riviin:
'label1 & numericUpDown1, pieni väli, label2 & numericUpDown2
'kavenna numericUpDown-kontrollit niin, että niiden teksti ei näy

'Väännetty SharpDevelop 4.0 Beta 4:lla
'(joten älä copy/pasteta koko koodia suoraan
'Visual Basic .NET (2002-2010) oletus-pääformille 'Form1')

Imports System.Data
Imports System.Data.OleDb
Imports Microsoft.VisualBasic

Public Partial Class MainForm

   Private yhteys As OleDbConnection = Nothing
   Private ValittuPvm As Date
   Private tila As Integer
   Private TaulunNimi As String = String.Empty

   Private Structure TiedotStructure
      Dim Pvm As Date
      Dim Klo As Date
      Dim Tiedote As String
   End Structure

   Private Tiedotukset(0) As TiedotStructure

   Public Sub New()

      Me.InitializeComponent()

   End Sub

   Sub MainForm_Load(sender As Object, e As EventArgs)

      Dim TietokannanNimi As String = "Tietokanta.mdb"
      Dim TietokannanPolku As String = _
      Application.StartupPath + "\" + TietokannanNimi
      TaulunNimi = "Taulu"

      Dim yhteysmerkkijono As String = _
      "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" _
      + TietokannanPolku + ";Persist Security Info=False;"

      yhteys  = New OleDbConnection(yhteysmerkkijono)
      ValittuPvm = DateSerial(Year(Now),Month(Now),Day(Now))

      Dim PvmTaulukko() As String
      PvmTaulukko = Split(CStr(DateSerial( _
      Year(Now), Month(Now), Day(Now))), ".")

      Dim Pvm As String
       Pvm = PvmTaulukko(1) & "-" & _
       PvmTaulukko(0) & "-" & PvmTaulukko(2)
       PvmTaulukko = Nothing
       AsetaKellonaika(CStr(TimeOfDay))
       TextBox1.Text = String.Empty

   End Sub

   Sub Label1_TextChanged(sender As Object, e As EventArgs)
      If Label1.Text = "24" And Label2.Text <> "00" Then
         Label2.Text = "00": numericUpDown2.Value = 0
      End If
   End Sub

   Sub Label2_TextChanged(sender As Object, e As EventArgs)
      If Label2.Text.Length = 1 Then
         Label2.Text += "0"
      End If
      If Label1.Text = "24" And Label2.Text <> "00" Then
         Label1.Text = "00"
         numericUpDown1.Value = 0
      End If
   End Sub

   Sub NumericUpDown1_ValueChanged( _
   sender As Object, e As EventArgs)
      Label1.Text = CStr(NumericUpDown1.Value)
   End Sub

   Sub NumericUpDown2_ValueChanged( _
   sender As Object, e As EventArgs)
      Label2.Text = _
      CStr(NumericUpDown2.Value / 10).Replace(",","")
   End Sub

   Sub Button1_Click(sender As Object, e As EventArgs)

      tila = 1:
      Dim PvmTaulukko() As String

      PvmTaulukko = Split(CStr(DateSerial( _
      Year(ValittuPvm), Month(ValittuPvm), Day(ValittuPvm))), ".")
      Dim Pvm As String
      Pvm = PvmTaulukko(0) & "-" & _
      PvmTaulukko(1) & "-" & PvmTaulukko(2)

      LueTiedotTietokannasta( "Select * From [" & TaulunNimi _
      & "] Where Pvm=#" & Pvm & "#")

   End Sub

   Sub Button2_Click(sender As Object, e As EventArgs)

      If TextBox1.Text <> "" And tila = 0 Then

         Dim kellonaika As String =
         label1.Text + ":" + label2.Text
         Dim päivämäärä As String = _
         CStr(ValittuPvm).Replace(".","-")
         Dim kysely  As String = _
         "Insert Into Taulu(Pvm, Aika, Muistutus) " + _
         "Values(#" + päivämäärä + "#, #" + _
         kellonaika + "#, '" + textBox1.Text + "')"
         yhteys.Open
         Dim komento As OleDbCommand = _
         New OleDbCommand(kysely, yhteys)
         komento.ExecuteNonQuery
         yhteys .Close

      End If

   End Sub

   Sub Button3_Click(sender As Object, e As EventArgs)

      tila = 0
      TextBox1.ReadOnly = False
      TextBox1.Text = String.Empty
      ComboBox1.SelectedIndex = 0
      AsetaKellonaika(CStr(TimeOfDay))

   End Sub

   Sub ComboBox1_SelectedIndexChanged( _
   sender As Object, e As EventArgs)

      If ComboBox1.SelectedIndex > 0 Then

         tila = 1
         monthCalendar1.SelectionStart = _
         Tiedotukset( _
         ComboBox1.SelectedIndex - 1).Pvm
         TextBox1.Text = Tiedotukset( _
         ComboBox1.SelectedIndex - 1).Tiedote
         TextBox1.BackColor = Color.White
         TextBox1.ReadOnly = True
         AsetaKellonaika(CStr(Tiedotukset( _
         ComboBox1.SelectedIndex - 1).Klo))

      Else

         tila = 0
         TextBox1.ReadOnly = False
         TextBox1.Text = String.Empty
         AsetaKellonaika(CStr(TimeOfDay))
         monthCalendar1.SelectionEnd = Today

      End If

      ValittuPvm = monthCalendar1.TodayDate

   End Sub

   Sub LueTiedotTietokannasta(ByVal kysely As String)

      Dim komento As OleDbCommand = _
      New OleDbCommand(kysely, yhteys)

      yhteys.Open

      Dim lukija As OleDbDataReader = komento.ExecuteReader
      Dim i As Integer = -1

      ComboBox1.Items.Clear
      ComboBox1.Items.Add(String.Empty)

      If  lukija.HasRows Then

         While lukija.Read

            i += 1
            ReDim Preserve Tiedotukset(i)
            Tiedotukset(i).Pvm = CType(lukija(1), Date)
            Tiedotukset(i).Klo = CType(lukija(2),Date)
            Tiedotukset(i).Tiedote = CType(lukija(3),String)
            ComboBox1.Items.Add("Tiedote " & i.ToString)

         End While

         lukija.Close: ComboBox1.SelectedIndex = 0

      End If

      yhteys.Close

   End Sub

   Sub AsetaKellonaika(ByVal Aika As String)

      Dim Ajat() As String
      ajat = Split(Aika, ":")
      numericUpDown1.Value  = CType(Val(ajat(0)), Decimal)
      numericUpDown2.Value = CType(Val(ajat(1)), Decimal)
      if numericUpDown2.Value = 0 Then
         label2.Text = "0"
      End If
      Ajat = Nothing

   End Sub

   Sub MonthCalendar1_DateSelected( _
   sender As Object, e As DateRangeEventArgs)
      ValittuPvm = e.Start
   End Sub

   Sub MainForm_FormClosing( _
   sender As Object, e As FormClosingEventArgs)

      Try
         yhteys.Close
      Catch ex As Exception
      End Try
      yhteys = Nothing
      Me.Dispose

   End Sub

End Class

Sivun alkuun

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta