Mengubah Data MS Access dengan TAdoQuery


Tambahkan tombol edit, sehingga tampilan pada artikel sebelumnya menjadi seperti dibawah ini



Ada pengubahan kode program pada btnSimpanClick jika dibandingkan pada artikel sebelumnya. Pengubahan ini dilakukan untuk alasan praktis, agar isi btnSimpanClick tidak terlalu banyak. Perubahan dilakukan dengan pertama-tama mendeklarasikan variabel KodeEdit pada file berekstensi h di bagian private dari program seperti dibawah ini.

private:   
     AnsiString KodeEdit;

Buat dua prosedur, Tambah() dan Edit(). Kedua prosedur di deklarasikan terlebih dahulu di bagina private file ekstensi h, sehingga sekarang bagian private menjadi:

private:   
     AnsiString KodeEdit;
     void _fastcall Tambah();
     void _fastcall Edit();

Pada bagian Tambah() masukkan kode berikut:

void _fastcall TForm1::Tambah()
{
    ADOQuery2->Close();
    ADOQuery2->SQL->Clear();
    ADOQuery2->SQL->Add(“insert into pelanggan(ID_CUSTOMER, NAMA_CUSTOMER, ALAMAT)”);
    ADOQuery2->SQL->Add(“values(:IDCUSTOMER, :NAMACUSTOMER, :ALAMAT)”);
    /* siapkan parameter penerimaan data */
    ADOQuery2->Parameters->ParamByName(“IDCUSTOMER”)->Value = edtIDCustomer->Text;
    ADOQuery2->Parameters->ParamByName(“NAMACUSTOMER”)->Value = edtNamaCustomer->Text;
    ADOQuery2->Parameters->ParamByName(“ALAMAT”)->Value = edtAlamat->Text;
    ADOQuery2->ExecSQL();
    if (ADOQuery2->RowsAffected > 0) {
      edtIDCustomer->Text = DBGrid1->Columns->Grid->Fields[0]->Text;
      edtNamaCustomer->Text = DBGrid1->Columns->Grid->Fields[1]->Text;
      edtAlamat->Text = DBGrid1->Columns->Grid->Fields[2]->Text;
      /* tampilkan perubahan pada grid */
      ADOQuery1->Refresh();
      edtIDCustomer->Enabled = true;
      ShowMessage(“Data telah disimpan”);
    } else
    {
    ShowMessage(“Data tidak dapat disimpan”);
    edtIDCustomer->SetFocus();
    };
}

sedangkan pada Edit(), masukkan kode berikut:

void _fastcall TForm1::Edit()
{
  
 ADOQuery2->Close();
ADOQuery2->SQL->Clear();
ADOQuery2->SQL->Add(“update pelanggan set “);
ADOQuery2->SQL->Add(“NAMA_CUSTOMER = :NAMACUSTOMER , ALAMAT = :ALAMAT”);
ADOQuery2->SQL->Add(“where ID_CUSTOMER = :IDCUSTOMER”);
   /* siapkan parameter penerimaan data */
  ADOQuery2->Parameters->ParamByName(“IDCUSTOMER”)->Value = edtIDCustomer->Text;
  ADOQuery2->Parameters->ParamByName(“NAMACUSTOMER”)->Value = edtNamaCustomer->Text;
  ADOQuery2->Parameters->ParamByName(“ALAMAT”)->Value = edtAlamat->Text;
  ADOQuery2->ExecSQL();
  if (ADOQuery2->RowsAffected > 0) {
     edtIDCustomer->Text = DBGrid1->Columns->Grid->Fields[0]->Text;
     edtNamaCustomer->Text = DBGrid1->Columns->Grid->Fields[1]->Text;
     edtAlamat->Text = DBGrid1->Columns->Grid->Fields[2]->Text;
     /* tampilkan perubahan pada grid */
     ADOQuery1->Refresh();
     edtIDCustomer->Text = DBGrid1->Columns->Grid->Fields[0]->Text;
     edtNamaCustomer->Text = DBGrid1->Columns->Grid->Fields[1]->Text;
     edtAlamat->Text = DBGrid1->Columns->Grid->Fields[2]->Text;
     ShowMessage(“Data telah diubah”);
   } else
   {
   ShowMessage(“Data tidak dapat diubah”);
   edtIDCustomer->SetFocus();
   };
}

Letak perbedaaan Edit dan Tambah adalah pada query. Tambah memakai insert sedangkan Edit memakai query memakai update. Setelah itu barulah lakukan perubahan pada btnSimpanClick sebagai berikut:

void __fastcall TForm1::btnSimpanClick(TObject *Sender)
{
  if (KodeEdit == “tambah”) {
    Tambah();
  } else
  {
    Edit();
  }
}

Sekarang langkah-langkah peng-edit-an data dilakukan dengan memilih data tersebut pada DbGrid menggunakan mouse. Data yang dipilih tersebut akan ditampilkan pada kota edit yang bersesuaian. Selanjutnya pengguna klik tombol Edit. Saat pengguna selesai maka edtIDCustomer akan dibuat tidak bisa diakses. Ini dikarenakan ID_Customer adalah primary key. Data akan dimasukkan ke database setelah pengguna menekan tombol btnSimpan.

Mengubah Data MS Access dengan TAdoQuery Rating: 4.5 Diposkan Oleh: Good Dreamer

0 comments:

Posting Komentar

Diberdayakan oleh Blogger.