1. Overflow disebabkan karena nilai melebihi range dari tipe variabel
2. Agar hasil lebih baik dan tidak bergantung pada format regional dari
komputer, maka gunakan komponen DataTimePicker
Selain itu, belajarlah untuk membuat koding lebih rapi agar tidak terjadi
kesalahan
Dari koding anda, terdapat kesalahan logika:
If ( Label16.Caption = SelisihHariJam(CDate(txttglpenilaian.Text),
CDate(txttglpelaporanppa.Text)) ) <= (CDate(360)) Then
-> Fungsi diatas sebenernya adalah membandingkan apakah nilai label16.text
adalah sama dengan selisihharijam yang akan hasilkan nilai boolean yang
kemudian dibandingkan lagi dengan nilai 360 yang dikonversi ke tanggal.
Fungsi ini tidak sesuai dengan tujuan yang akan dicapai
Ubah fungsi menjadi berikut:
if (SelisihHariJam(dtpTglPenilaian.Date,dtpTglPelaporanPPA.Date)) <= 360
then
Selebihnya disesuaikan saja. Saran saya tampung nilai SelisihHariJam dalam
suatu variabel seperti berikut ini:
Dim iSelisih as integer
iSelisih = SelisihHariJam(dtpTglPenilaian.Date,dtpTglPelaporanPPA.Date)
If iSelisih < 360 then txtbobot.Text = 70
If iSelisih > 360 and iSelisih < 540 then txtbobot.Text = 50
If iSelisih > 540 and iSelisih < 720 then txtbobot.Text = 30
If iSelisih > 720 then txtbobot.Text = 0
Iwan Cahyadi Sugeng
Freelance System Analyst
________________________________
From: harli harli [mailto:[EMAIL PROTECTED]
Sent: Tuesday, August 22, 2006 4:48 PM
To: [email protected]
Subject: [indoprog-vb] mohon bantuannya.......
salam kenal untuk semua, saya harli.saya seorang pemula dalam
vb.saat ini sya ada masalah dlam pembuatan program.masalahnya adlh:
1. saya selalu mendpt overflow dlam koding ini
txtstlhbobot.Text = (txtnilaipsr.Text * txtbobot.Text) \ 100&
dan bagaimana caranya agar hasilnya menjadi pembulatan.
2.sya mendapatkan kasus percabangan dalam kondisi dengan selisih
hari.kondisinya sperti : jika hari < 360 hari maka nilai 70,jika hari > 360
hari dan hari <= 720 hari maka nilai 50, dimana nilai tersebut saya
tampilkan di texybox.koding yang saya gunakan
If (Label16.Caption = SelisihHariJam(CDate(txttglpenilaian.Text),
CDate(txttglpelaporanppa.Text))) <= (CDate(360)) Then
txtbobot.Text = 70
End If
If (Label16.Caption = SelisihHariJam(CDate(txttglpenilaian.Text),
CDate(txttglpelaporanppa.Text))) > (CDate(360)) And (Label16.Caption =
SelisihHariJam(CDate(txttglpenilaian.Text), CDate(txttglpelaporanppa.Text)))
<= (CDate(540)) Then
txtbobot.Text = 50
End If
If (Label16.Caption = SelisihHariJam(CDate(txttglpenilaian.Text),
CDate(txttglpelaporanppa.Text))) > (CDate(540)) And (Label16.Caption =
SelisihHariJam(CDate(txttglpenilaian.Text), CDate(txttglpelaporanppa.Text)))
<= (CDate(720)) Then
txtbobot.Text = 30
End If
If (Label16.Caption = SelisihHariJam(CDate(txttglpenilaian.Text),
CDate(txttglpelaporanppa.Text))) >= (CDate(720)) Then
txtbobot.Text = 0
End If
If txttypefas.Text = "Agunan Tunai/Deposito" Then
txtbobot.Text = 100
End
dlam menggunakan koding ini hasil yg muncul selalu kondisi yang
pertama.
ini mslh yang sedang saya hadapi.sebelum dan sesudahnya saya ucapkan
terima kasih.
Untuk berhenti berlangganan kirim email kosong ke : [EMAIL PROTECTED]
Bagi terjangkit virus lokal, zip virus tersebut
dan kirim ke [EMAIL PROTECTED], kami
akan membuat removalnya untuk anda.
Yahoo! Groups Links
<*> To visit your group on the web, go to:
http://groups.yahoo.com/group/indoprog-vb/
<*> To unsubscribe from this group, send an email to:
[EMAIL PROTECTED]
<*> Your use of Yahoo! Groups is subject to:
http://docs.yahoo.com/info/terms/