Anda sedang offline saat ini, menunggu internet Anda untuk menyambung kembali

Fungsi untuk menghitung dan menampilkan nilai-nilai Tanggal/Waktu akses

PENTING: Artikel ini diterjemahkan oleh perangkat lunak penerjemahan mesin Microsoft, dan mungkin telah diedit oleh Masyarakat Microsoft melalui teknologi CTF dan bukan oleh seorang penerjemah profesional. Microsoft menawarkan baik artikel yang diterjemahkan oleh manusia maupun artikel hasil editan terjemahan oleh mesin/komunitas, sehingga Anda dapat mengakses semua artikel di Sentra Pengetahuan yang kami miliki dalam berbagai bahasa. Namun artikel hasil editan mesin atau bahkan komunitas tidak selalu sempurna. Artikel ini dapat mengandung kesalahan dalam hal kosa kata, sintaksis atau tatabahasa, sangat mirip dengan penutur asing yang membuat kekeliruan ketika berbicara dalam bahasa Anda. Microsoft tidak bertanggung jawab atas ketidakakuratan, kesalahan atau kerugian apa pun akibat dari kekeliruan dalam penerjemahan isi atau penggunaannya oleh pelanggan kami. Microsoft juga akan senantiasa memperbarui perangkat lunak penerjemahan mesin dan alat untuk menyempurnakan Editan Hasil Penerjemahan Mesin.

Klik disini untuk melihat versi Inggris dari artikel ini: 210604
Sedang: Memerlukan dasar makro, pengkodean dan interoperabilitas keterampilan.

Ringkasan
Karena nilai waktu yang disimpan sebagai angka presisi ganda, Anda mayreceive salah format hasil saat Anda mencoba untuk manipulasi tanggal Timevalues dalam ekspresi. Artikel ini menunjukkan cara membuat ekspresi dan fungsi kustom untuk menampilkan tanggal tertentu dan menghitung interval waktu.

Microsoft menyediakan contoh pemrogaman hanya untuk ilustrasi, tanpa garansi baik tersurat maupun tersirat. Ini mencakup, namun tidak terbatas pada, garansi yang tersirat dapat diperjualbelikan atau kesesuaian untuk tujuan tertentu. Artikel ini menganggap bahwa Anda sudah terbiasa dengan bahasa pemrogram yang ditunjukkan dan terbiasa dengan alat-alat yang digunakan untuk membuat dan prosedur debug. Teknisi dukungan Microsoft dapat membantu menjelaskan fungsionalitas prosedur tertentu, namun mereka tidak akan mengubah contoh tersebut untuk memberikan fungsionalitas tambahan atau menyusun prosedur untuk memenuhi persyaratan khusus Anda.
Informasi lebih lanjut

Menampilkan tanggal tertentu

Untuk menampilkan tanggal tertentu, Anda dapat menggunakan fungsi DateSerial() tomanipulate porsi hari, bulan dan tahun sejak tanggal. Sebagai contoh, youcan menggunakan ekspresi berikut di properti ControlSource kotak teks atau jendela Segera Kembali tanggal tertentu:
  • Bulan ini:
    DateSerial(Year(Date()), Month(Date()), 1)
  • Bulan:
    DateSerial(Year(Date()), Month(Date()) + 1, 1)
  • Hari terakhir bulan ini:
    DateSerial(Year(Date()) Month(Date()) + 1, 0)
  • Hari terakhir bulan berikutnya:
    DateSerial(Year(Date()) Month(Date()) + 2, 0)
  • Hari pertama bulan sebelumnya:
    DateSerial(Year(Date()), Month(Date())-1,1)
  • Hari terakhir bulan sebelumnya:
    DateSerial(Year(Date()), Month(Date()),0)
  • Hari pertama kuartal saat ini:
    DateSerial(Year(Date()), Int((Month(Date()) - 1) / 3) * 3 + 1, 1)
  • Hari terakhir kuartal saat ini:
    DateSerial(Year(Date()), Int((Month(Date()) - 1) / 3) * 3 + 4, 0)
  • Hari pertama dari minggu ini(dengan menganggap minggu = 1 hari):
    Date() - WeekDay(Date()) + 1
  • Hari terakhir dari minggu ini:
    Date() - WeekDay(Date()) + 7
  • Hari minggu saat (menggunakan setelan di opsi dialogbox):
    Date() - WeekDay(Date(), 0) + 1
  • Hari terakhir dari minggu ini:
    Date() - WeekDay(Date(), 0) + 7
Untuk informasi lebih lanjut tentang menghitung tahun fiskal atau bulan fiskal, klik nomor artikel berikut ini untuk melihat artikel di Pangkalan Pengetahuan Microsoft:
210249 Cara mendapatkan tahun fiskal atau bulan sejak tanggal tertentu di Access 2000
Hati-hati: jika Anda mengikuti langkah-langkah dalam contoh ini, Anda mengubah database sampel Northwind.mdb. Anda mungkin ingin membuat cadangan berkas Northwind.mdb dan ikuti langkah-langkah berikut pada kopi karbon dari pangkalan data.

Menghitung interval waktu

Karena nilai waktu yang disimpan sebagai pecahan 24 jam sehari, Anda mayreceive format hasil yang salah ketika Anda mencoba untuk menambah, kurangi, simbol kali atau bagi data waktu yang lebih besar daripada 24 jam.

Sebagai contoh, jika Anda mencoba untuk menemukan jumlah jam berlalu antara twodates dengan mengurangi nilai dalam Visual Basic, Anda akan menerima nomor anincorrect. Untuk menunjukkan hal ini, ketik kode berikut di jendela theImmediate dan perhatikan bahwa gulung balik nilai 0:00 jam daripada nilai yang benar 53:00 jam:
   StartDate=#6/1/93 8:00AM#   EndDate=#6/3/93 1:00PM#   ?Format(EndDate-StartDate,"hh:mm")

Untuk menyelesaikan masalah format yang disebabkan oleh nilai-nilai waktu yang lebih besar daripada 24 Jam, Anda dapat menggunakan fungsi Int() dan CSng() dalam Visual Basic untuk memisahkan nilai terhitung waktu ke variabel yang berbeda untuk hari, jam, menit, dan detik. Misalnya, Anda dapat memasukkan fragmen kode berikut dalam fungsi kustom untuk membuat variabel waktu terpisah:
 '------------------------------------------------------------------- ' This sample code separates a time interval into seven variables for ' the following values: days, hours, minutes, seconds, total time in ' hours, total time in minutes, and total time in seconds. ' ' The interval argument is flexible; it can be a single value, an ' expression, or a field reference. '------------------------------------------------------------------- Dim totalhours As Long, totalminutes As Long, totalseconds As Long Dim days As Long, hours As Long, minutes As Long, seconds As Long Dim interval As Variant days = Int(CSng(interval)) totalhours = Int(CSng(interval * 24)) totalminutes = Int(CSng(interval * 1440)) totalseconds = Int(CSng(interval * 86400)) hours = totalhours Mod 24 minutes = totalminutes Mod 60 seconds = totalseconds Mod 60

Anda dapat menggunakan totalhours, totalminutes dan totalseconds variabel todisplay nilai waktu sebagai satu unit waktu. Hari, jam, menit, dan detik variabel yang memungkinkan Anda untuk membagi nilai waktu ke waktu portionsof. Untuk menampilkan nilai-nilai waktu dalam format yang berbeda, Anda dapat concatenatethese variabel seperti yang ditunjukkan di fungsi contoh berikut ini:
  • Fungsi GetElapsedDays() menghitung waktu berlalu antara dua tanggal waktu nilai dan menampilkan hasil dalam hari.
  • Fungsi GetElapsedTime() menghitung waktu berlalu antara waktu nilai dan menampilkan hasil dalam hari, jam, menit, dan detik.
  • Fungsi GetTimeCardTotal() jumlah kolom waktu nilai dalam Daftar Tabel dan menampilkan total jam dan menit.

Fungsi contoh GetElapsedDays()

Untuk membuat fungsi GetElapsedDays() , ikuti langkah-langkah berikut:
  1. Buka database sampel Northwind.mdb.
  2. Membuat modul dan ketik baris berikut Declarationssection jika tidak sudah ada:
     Option Explicit
  3. Ketik fungsi berikut ini:
     Function GetElapsedDays (interval)    Dim days As Long    days = Int(CSng(interval))    GetElapsedDays = days & " Days " End Function
  4. Untuk menguji fungsi ini, buat permintaan baru yang didasarkan pada Daftar Tabel urutan menurun.
  5. Dalam kisi QBE, menambahkan bidang-bidang berikut.
        Field: ShippedDate    Show: True    Field: OrderDate    Show: True    Field: ElapsedTime: GetElapsedDays([ShippedDate]-[OrderDate])    Show: True
  6. Menjalankan kueri. Perhatikan bahwa kolom ElapsedTime menampilkan jumlah hari antara bidang ShippedDate dan OrderDate kolom untuk setiap kumpulan dokumen di Daftar Tabel urutan menurun.

GetElapsedTime() contoh fungsi

Untuk membuat fungsi GetElapsedTime() , ikuti langkah-langkah berikut:
  1. Membuat Daftar Tabel baru dengan struktur berikut dan menyimpannya sebagai TimeLog.
        Table: TimeLog    -----------------------    Field Name: StartTime    Data Type: Date/Time    Format: General Date    Field Name: EndTime    Data Type: Date/Time    Format: General Date
  2. Lihat Daftar Tabel TimeLog dalam tampilan Datasheet, masukkan threerecords berikut, dan kemudian tutup tabel:
        StartTime                 EndTime    --------------------------------------------    5/10/95 4:57:00  PM       5/15/95 2:38:00 AM    5/11/95 10:17:31 AM       5/24/95 6:05:00 PM    5/18/95 9:16:43  AM       5/19/95 5:03:00 PM
  3. Membuat modul dan ketik baris berikut pada bagian Deklarasi:
     Option Explicit
  4. Masukkan fungsi berikut ini:
     Function GetElapsedTime(interval) Dim totalhours As Long, totalminutes As Long, totalseconds As _     Long Dim days As Long, hours As Long, Minutes As Long, Seconds As Long days = Int(CSng(interval)) totalhours = Int(CSng(interval * 24)) totalminutes = Int(CSng(interval * 1440)) totalseconds = Int(CSng(interval * 86400)) hours = totalhours Mod 24 Minutes = totalminutes Mod 60 Seconds = totalseconds Mod 60 GetElapsedTime = days & " Days " & hours & " Hours " & Minutes & _ " Minutes " & Seconds & " Seconds " End Function

    CATATAN Fungsi GetElapsedTime mensyaratkan bahwa Anda melewati tanggal dan waktu.
  5. Untuk menguji fungsi ini, Buat laporan baru yang didasarkan pada Daftar Tabel TimeLog menggunakan Wisaya AutoReport.
  6. Melihat laporan di tampilan desain.
  7. Tambahkan kotak teks yang terpisah untuk properti setits dan Daftar Tabel TimeLog detail bagian sebagai berikut:
        Textbox    ---------------    Name: ElapsedTime    ControlSource: =GetElapsedTime([EndTime]-[StartTime])    Width: 3 inches
  8. Pratinjau laporan. Perhatikan bahwa setiap kumpulan dokumen menampilkan total elapsedtime di hari, jam, menit, dan detik.

Fungsi contoh GetTimeCardTotal()

Untuk membuat fungsi GetTimeCardTotal() , ikuti langkah-langkah berikut:

Catatan: kode contoh dalam artikel ini menggunakan objek akses Data Microsoft. Kode ini dijalankan dengan benar, Anda harus merujuk ke Pustaka Objek Microsoft DAO 3.6. Untuk melakukannya, klik Referenci pada menu Alat di Editor Visual Basic, dan pastikan bahwa kotak centang Pustaka Objek Microsoft DAO 3,6 dipilih.

  1. Membuat Daftar Tabel baru dengan struktur berikut dan menyimpannya sebagai TimeCard.
        Table: TimeCard    -----------------------    Field Name: Daily Hours    Data Type: Date/Time    Format: Short Time
  2. Lihat Daftar Tabel TimeCard dalam tampilan Datasheet, masukkan fourrecords berikut, dan kemudian tutup tabel:
        8:15    7:37    8:12    8:03
  3. Membuat modul dan ketik baris berikut Declarationssection jika tidak sudah ada:
     Option Explicit
  4. Ketik fungsi berikut ini:
     Function GetTimeCardTotal () Dim db As DAO.Database, rs As DAO.Recordset Dim totalhours As Long, totalminutes As Long Dim days As Long, hours As Long, minutes As Long Dim interval As Variant, j As Integer Set db = dbengine.workspaces(0).databases(0) Set rs = db.OpenRecordset("timecard") interval = #12:00:00 AM#    While Not rs.EOF       interval = interval + rs![Daily hours]       rs.MoveNext    Wend totalhours = Int(CSng(interval * 24)) totalminutes = Int(CSng(interval * 1440)) hours = totalhours Mod 24 minutes = totalminutes Mod 60 GetTimeCardTotal = totalhours & " hours and " & minutes & " minutes" End Function
  5. Untuk menguji fungsi ini, ketik baris berikut di jendela segera, dan kemudian tekan ENTER:
     ?GetTimeCardTotal()

    Perhatikan bahwa jendela segera menampilkan 32 dan 7 menit.
Referensi
Untuk informasi selengkapnya tentang menghitung nilai tanggal waktu, klik nomor artikel berikut ini untuk melihat artikel di Pangkalan Pengetahuan Microsoft:
210276 Menyimpan, menghitung, dan membandingkan data tanggal waktu
pecahan ACC2007

Peringatan: Artikel ini telah diterjemahkan secara otomatis

Properti

ID Artikel: 210604 - Tinjauan Terakhir: 01/02/2016 07:48:00 - Revisi: 3.0

, , ,

  • kbhowto kbprogramming kbmt KB210604 KbMtid
Tanggapan
p;t="> ""; document.write("