locked
mencari nilai terdekat dari database apabila nilai yang sama persis tidak ada RRS feed

  • Pertanyaan

  • salam programmers

    saya sedang membangun sebuah aplikasi

    tetapi saya mengalami sedikit masalah dalam proses pencarian data..

    Bagaimana cara mencocokan data pada form 1(value.text) dengan
    data pada data base access..dan hasil pencocokan disimpan dalam form
    1(result.text)..apabila tidak ditemukan nilai yang sama persis dengan nilai pada value.text maka sistem akan mencari nilai yang paling dekat..

    contoh dataset

    No   data    value                    misalnya pada form1 value.text saya isi dengan nilai 122

    1      A           140                    maka pada result.text C dan apabila nilai 148 hasil B

    2      B           150

    3     C           110

    sementara saya masih menggunakan coding untuk mencari nilai yang sama persis tapi ini tidak sesuai dengan aplikasi yang ingin dibangun..

        Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged
            conn.Open()
            cmd = New OleDbCommand("select*from table1 where value ='" & TextBox1.Text & "'", conn)
            rd = cmd.ExecuteReader
            rd.Read()
            If rd.HasRows Then
                TextBox2.Text = rd.Item("data")
            End If
            conn.Close()
        End Sub

    bagaimana ya untuk mencari nilai yang paling dekat apabila nilai yang persis tidak ditemukan..

    maafkan bila pertanyaannya aneh maklum newbie

    please help me...

    terima kasih



    • Diedit oleh chamyel25 Sabtu, 09 Februari 2013 06.45
    Sabtu, 09 Februari 2013 06.43

Jawaban

  • Ganti saja query-nya menjadi

    select TOP 1 * from table1 ORDER BY ABS(value - " & TextBox1.Text & ")"

    

    Ahmad Masykur http://www.masykur.web.id/

    • Disarankan sebagai Jawaban oleh Andy NugrahaModerator Kamis, 14 Februari 2013 01.09
    • Ditandai sebagai Jawaban oleh chamyel25 Kamis, 14 Februari 2013 22.49
    Senin, 11 Februari 2013 00.58

Semua Balasan

  • Dear Tante Chamvel25,

    Boleh saya ta'u apa keuntungannya mencari nilai terdekat bila nama yang sama persis tidak ada? Karena kalo hanya mencari nilai yang terdekat, bukankah sudah ada fasilitas sort dari database yang sudah ada, misalnya dalam kasus ini tante chamvel25 menggunakan MS ACCESS.

    Setelah itu dari kode yang tante chamvel25 sertakan. Saya lihat filter yang digunakan untuk field yang bertipe string. Sebab kalo angka gak perlu menggunakan tanda kutip sebagai pengurung nilai yang dicari.

    Sabtu, 09 Februari 2013 09.04
  • Oh ya, sekalian yah, kalo bisa tante berikan screen shot desain formnya. Biar lebih mudah untuk dimengerti. Harap maklum, saya orangnya rada-rada blo'on sih, hehehehe.
    Sabtu, 09 Februari 2013 09.06
  • terimakasih ya om atas sarannya..

    kalau boleh tau fasilitas sort pada code VB.net bisa diaplikasikan gak..

    kalau bisa codenya kanyak gimana tolongin om,.,

    Minggu, 10 Februari 2013 01.08
  • Halo Tante Chamvel25,

    Saya rasa tante gak perlu berpikir yang rumit-rumit, dari kode yang telah disertakan, tambahkan aja perintah sql seperti berikut ini:

    Order By [Nama Field]

    lebih lengkapnya seperti ini:

    "select * from table1 where value ='" & TextBox1.Text & "' order by [namafield]"

    Tapi kalo tante ingin mempelajari struktur DataSet secara mandiri. Dimana DataSet bisa menjadi sebuah DataBase, maka tante bisa menuju kemari,

    >Pengalamanku Dengan DataSet bagian 1

    >Pengalamanku Dengan DataSet bagian 2 (revisi 2)

    >Pengalamanku Dengan DataSet bagian 2 (revisi 3)

    Semoga membantu.

    Minggu, 10 Februari 2013 03.35
  • Ganti saja query-nya menjadi

    select TOP 1 * from table1 ORDER BY ABS(value - " & TextBox1.Text & ")"

    

    Ahmad Masykur http://www.masykur.web.id/

    • Disarankan sebagai Jawaban oleh Andy NugrahaModerator Kamis, 14 Februari 2013 01.09
    • Ditandai sebagai Jawaban oleh chamyel25 Kamis, 14 Februari 2013 22.49
    Senin, 11 Februari 2013 00.58
  • tanya dunks...

    cara membuat kode akun gimana ya?P???

    misal : C0101XX..

    untuk XX diambil dari data terakhir mengikuti kode depannya..

    plis bantuannya...

    Senin, 11 Februari 2013 09.00
  • Coba gunakan query berikut

    SELECT 'C' + RIGHT('000000' + CAST((CAST(RIGHT(ISNULL(MAX(KodeAkun), 'C010101'), 6) AS int) + 1) AS varchar(6)), 6) FROM TabelKodeAkun


    Ahmad Masykur http://www.masykur.web.id/


    Senin, 11 Februari 2013 09.14