Selasa, 29 Maret 2011

Membangun Contoh Kedua dari Scratch:

Oke, mari kita belajar lagi :) Yang satu ini cukup sedikit lebih besar daripada yang lain (walaupun lebih besar atau kurang berguna lebih banyak barang yang dilemparkan untuk bersenang-senang, haha)!.
Desain Database
1. Buka Akses MS (Start - Program - Microsoft Access)
2. Pilih "Mulai database kosong" dari wizard yang muncul
3. Pilih tempat untuk menyimpan file mdb dan nama untuk itu (saya adalah "CDCollectionA.mdb")
4. Anda akan mendapatkan ke jendela berikut, di mana Anda klik dua kali pada "Buat tabel dalam tampilan desain:"

desain database jendela utama
5. : Ketika Anda klik dua kali bahwa "membuat tabel dalam desain tampilan" thingie, Anda bisa sampai ke jendela ini:

Desain Tabel tampilan jendela
6. Anda ingin mengikuti langkah-langkah berikut ini untuk mendapatkan meja saya bekerja dengan:
1. Membuat field yang disebut ArtistName tipe Teks
2. Membuat lapangan yang disebut AlbumTitle yang tipe Teks
3. Membuat disebut lapangan Trek suatu yang tipe Number (integer panjang hanya cukup keren)
4. Pilih baris dalam tampilan desain (seperti digambarkan di atas) yang memiliki ArtistName dan AlbumTitle
5. Klik kanan pada seleksi itu, dan memilih Primary Key dari menu yang Anda dapatkan. Ini akan membuat kedua bidang menjadi kunci primer. Idenya adalah bahwa mereka dapat primer karena Anda tidak akan pernah identik nama artis dan judul album (dinyatakan apa gunanya?!).
7. Setelah Anda punya meja Anda dibangun, hanya yang dekat jendela. Anda akan secara otomatis diminta untuk menyimpan perubahan desain meja dan meja untuk memberikan nama, how original. Aku memilih CD, bagaimana asli. :) :)
8. Setelah itu selesai, Anda dapat menambahkan beberapa entri ke database dengan mengklik ganda tabel CD dari jendela utama desain database dan memasukkan secara manual atau hanya pindah ke:
Desain Software
Oke, seperti yang disebutkan di bagian atas artikel ini, kita akan menggunakan ADO (ActiveX Data Objects) mengontrol data untuk mendapatkan pada data bukan data umum kontrol yang digunakan dalam contoh 3 . Aku tahu apa yang Anda pikirkan: siapa yang peduli. :) Dalam hal apapun, ADO dapat menyediakan Anda dengan lebih customizability sedikit dan lebih sedikit kecepatan, tetapi juga sedikit lebih sulit untuk digunakan. Tidak masalah, meskipun, ada cara yang murah di sekitar segalanya, jadi's menyelam membiarkan langsung masuk
1. Hal pertama yang pertama, memulai sebuah proyek VB dengan Standar Exe.
2. Buka menu Proyek dan pilih Komponen (dekat bagian bawah). Anda ingin menambahkan dua kontrol baru untuk proyek Anda:
o the Microsoft ADO Data Control (OLEDB) and Microsoft ADO Data Control (OLEDB) dan
o Microsoft Hierarchical FlexGrid Control 6.0 (catatan ini bukan FlexGrid seperti yang digunakan pada Contoh 3)

add komponen dialog
3. Oke, sekarang melakukan hal-hal berikut untuk bentuk utama Anda:
1. Mengubah keterangan bentuk utama Anda untuk pinggul sesuatu dan jive ...
2. Tambahkan FlexGrid Heirarchical untuk membentuk Anda dengan memilih tool and drawing it on your main form. alat dan menggambar di form utama Anda.
3. Tambahkan ADO data source control untuk membentuk menggunakan tool and drawing on the form. alat dan gambar di formulir. Change its visibility property to False. Ubah properti visibilitas ke False.
4. Add two frames to the form using the Tambahkan dua frame ke bentuk menggunakan tool and drawing them on the form. alat dan menggambar mereka di formulir.
 Perubahan untuk satu frame:
 Add Entry caption untuk Tambah Entry
 fraAddEntry nya (nama) untuk fraAddEntry
 ) frame: Ubah untuk frame (kedua) lain:
 its caption to Remove Entry keterangannya untuk Hapus Entry
 its (name) to fraRemoveEntry nya (nama) untuk fraRemoveEntry
5. Draw kontrol berikut dalam bingkai Entry Tambah (ya, sebenarnya dalam frame):
1. A text box with the (name) txtArtistName Sebuah kotak teks dengan nama) txtArtistName (
2. A label above that text box with the caption Artist Name Label di atas kotak teks dengan keterangan Nama Artis
3. A text box with the (name) txtAlbumTitle Sebuah kotak teks dengan nama) txtAlbumTitle (
4. A label above that text box with the caption Album Title Label di atas kotak teks dengan judul Judul Album
5. A text box with the (name) txtTrackCount Sebuah kotak teks dengan nama) txtTrackCount (
6. A label above that text box with the caption Number of Tracks Label di atas kotak teks dengan Nomor keterangan dari Trek
7. A command button with the (name) cmdAddEntry and the caption Add this info Sebuah tombol perintah dengan (nama) cmdAddEntry dan keterangan Tambah info ini
6. Sekarang, dengan bingkai Hapus Entry, tambahkan kontrol sebagai berikut:
0. A command button with the (name) cmdRemoveEntry and the caption Remove Selected Sebuah tombol perintah dengan (nama) cmdRemoveEntry dan judul Hapus yang Dipilih
1. A label with the caption Select the entry you want to remove and click the button: Sebuah label dengan judul Pilih entri yang ingin Anda hapus dan klik tombol:
4. Sekarang, bagian yang paling rumit adalah memformat FlexGrid Heirarchical (yang disebut MSFHlexGrid1) untuk melakukan apa yang Anda inginkan. Ini cukup disesuaikan, tapi di sini semua saya lakukan untuk program ini misalnya:
1. the AllowBigSelection property was set to False milik AllowBigSelection ditetapkan untuk Salah
2. the AllowUserResizing property was set to 0 milik AllowUserResizing ditetapkan untuk 0
3. the FixedCols property was set to 0 while the FixedRows property was set to 1 (this is recommended for pretty displaying of stuff) milik FixedCols ditetapkan ke 0 sedangkan properti FixedRows ditetapkan untuk 1 (ini sangat direkomendasikan untuk menampilkan hal)
4. the FocusRect property was set to 0 milik FocusRect ditetapkan untuk 0
5. the HighLight property was set to 1 Sorot milik ditetapkan untuk 1
6. the ScrollBars property was set to 2 properti scrollbar ditetapkan untuk 2
7. the ScrollTrack property was set to True milik ScrollTrack ditetapkan untuk True
8. the SelectionMode property was set to 1 (selection by row only) milik SelectionMode ditetapkan untuk 1 (seleksi oleh baris saja)
5. Pada jendela desain form, double klik formulir, yang harus membawa Facebook jendela kode dengan kosong Form_Load () subrutin.
o Anda akan melihat waktu ini yang kita lakukan data dan hookup database dalam kode bukan di lembar properti.
o Untuk property ConnectionString dari ADO Data Control, Anda dapat membangun di lembar properti. Ada wizard di sana yang akan melakukannya dari awal untuk Anda, tapi itu cukup menjengkelkan untuk surfing melalui Itu sebabnya saya hanya termasuk string ini bukan (itu dibangun dalam wizard meskipun)
o Anda memerlukan dua variabel global, dan mereka tampil di atas Form_Load () method.
o Untuk DataSource, perhatikan FlexGrid bahwa perintah Set / direktif / apa saja yang digunakan! Here's the code: Berikut kode:
Option Explicit Option Explicit

' couple'o global vars to track the form minimum size 'Vars global couple'o untuk melacak bentuk ukuran minimum
Dim MinHeight As Long Dim MinHeight As Long
Dim MinWidth As Long Dim MinWidth As Long

Private Sub Form_Load() Private Sub Form_Load ()
' set up the database connectivity for the ADO data control 'Mengatur konektivitas database untuk kontrol data ADO
With Adodc1 Dengan Adodc1

' the connection string just defines an interface to connect 'String koneksi hanya mendefinisikan antarmuka untuk terhubung
' to the Access database. 'Ke database Access. We use the MS Jet SQL drivers for Kami menggunakan MS Jet driver SQL untuk
' simplicity's sake. ''s Sake kesederhanaan. Side-note: you can build your own connection string Side-catatan: Anda dapat membangun string koneksi sendiri
' from the property sheet for the ado data control, but I would advise 'Dari lembar properti untuk data kontrol ribut, tapi aku akan menyarankan
' against it, this is easier. 'Menentangnya, ini lebih mudah. :) :)
.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & _ ConnectionString =. "Provider = Microsoft.Jet.OLEDB.4.0; Data Source =" & _
App.Path & "\CDCollection.mdb;Persist Security Info=False" App.Path & "\ CDCollection.mdb; bertahan Security Info = False"

' the record source just tells the data control what and how 'Sumber catatan hanya memberitahu kontrol data apa dan bagaimana
' to pull out of the database. 'Untuk keluar dari database. Just raw SQL here. Hanya mentah SQL di sini.
.RecordSource = "select * from CDs order by ArtistName" RecordSource =. "* Pilih dari memesan CD oleh ArtistName"
End With Akhir Dengan

' set the Flex Grid data source to be the ADO data control. 'Mengatur sumber data Flex Grid menjadi ADO data kontrol.
Set MSHFlexGrid1.DataSource = Adodc1 Set MSHFlexGrid1.DataSource = Adodc1

' set up the format string for the flex grid. 'Mengatur format string untuk flex grid.
MSHFlexGrid1.FormatString = "Artist Name | Album Title | Track Count" MSHFlexGrid1.FormatString = "Nama Artis | Judul Album | Count Track"

' position all the controls happily and store the form minimum size Posisi semua kontrol gembira dan menyimpan bentuk ukuran minimum
MinHeight = Form1.Height MinHeight = Form1.Height
MinWidth = Form1.Width MinWidth = Form1.Width
Call Form_Resize Call Form_Resize
End Sub End Sub
6. Oke, itu dilakukanDari acara GUI di bagian atas jendela kode, memilih acara Resize. Anda kemudian harus mendapatkan shell untuk Form_Resize () method. Ini dipanggil setiap kali Anda mengubah ukuran form, dan kita hanya akan menggunakannya untuk membuat bentuk ukurannya terlihat cantik. Inilah yang harus mengisi:
Private Sub Form_Resize() Private Sub Form_Resize ()
' check to see if the form is getting too small (Note: this is just to avoid 'Periksa untuk melihat apakah bentuk semakin terlalu kecil (Catatan: ini adalah hanya untuk menghindari
' the math necessary to shrink all the textboxes, hahahaha!!) 'Matematika yang diperlukan untuk mengecilkan semua boks teks, hahahaha!!)
If MinHeight > Form1.Height Then Jika Form1.Height> MinHeight Kemudian
Form1.Height = MinHeight Form1.Height = MinHeight
Exit Sub Exit Sub
ElseIf MinWidth > Form1.Width Then Elseif MinWidth> Form1.Width Kemudian
Form1.Width = MinWidth Form1.Width = MinWidth
Exit Sub Exit Sub
End If End If

' resize the flexgrid to fit nicely on the screen 'Mengubah ukuran flexgrid agar sesuai dengan baik pada layar
MSHFlexGrid1.Width = Form1.ScaleWidth MSHFlexGrid1.Width = Form1.ScaleWidth
MSHFlexGrid1.Height = Form1.ScaleHeight / 2 MSHFlexGrid1.Height = Form1.ScaleHeight / 2

' resize the happy columns to look pretty (40% for each text column, 20% for Track) 'Mengubah ukuran kolom senang terlihat cantik (40% untuk setiap kolom teks, 20% untuk Track)
MSHFlexGrid1.ColWidth(0) = 0.4 * MSHFlexGrid1.Width MSHFlexGrid1.ColWidth (0) MSHFlexGrid1.Width * = 0,4
MSHFlexGrid1.ColWidth(1) = MSHFlexGrid1.ColWidth(0) MSHFlexGrid1.ColWidth (1) = MSHFlexGrid1.ColWidth (0)
MSHFlexGrid1.ColWidth(2) = MSHFlexGrid1.Width - (MSHFlexGrid1.ColWidth(0) * 2) - 60 MSHFlexGrid1.ColWidth (2) = MSHFlexGrid1.Width - (MSHFlexGrid1.ColWidth (0) * 2) - 60

' reposition and resize the frames on the screen to fit nicely (there was no 'Reposisi dan mengubah ukuran frame pada layar sesuai dengan baik (tidak ada
' science here, just did it by trial and error) 'Ilmu di sini, hanya melakukannya dengan cara trial and error)
fraAddEntry.Top = (Form1.ScaleHeight / 2) + 100 fraAddEntry.Top = (Form1.ScaleHeight / 2) + 100
fraAddEntry.Height = (Form1.ScaleHeight / 2) - 150 fraAddEntry.Height = (Form1.ScaleHeight / 2) - 150
fraAddEntry.Width = (Form1.ScaleWidth * 0.64) fraAddEntry.Width = (Form1.ScaleWidth * 0,64)
fraRemoveEntry.Height = (Form1.ScaleHeight / 2) - 150 fraRemoveEntry.Height = (Form1.ScaleHeight / 2) - 150
fraRemoveEntry.Top = (Form1.ScaleHeight / 2) + 100 fraRemoveEntry.Top = (Form1.ScaleHeight / 2) + 100
fraRemoveEntry.Width = (Form1.ScaleWidth * 0.36) - 100 fraRemoveEntry.Width = (Form1.ScaleWidth * 0,36) - 100
fraRemoveEntry.Left = fraAddEntry.Width + 100 fraRemoveEntry.Left = fraAddEntry.Width + 100
End Sub End Sub
7. Sekarang, kembali ke jendela desain bentuk dan double klik Tambahkan tombol ini infoAnda sekarang harus memiliki cmdAddEntry_Click kosong () subrutin. Kode ini cukup banyak identik dengan contoh database lama, tapi inilah yang harus mengisi, anyways:
Private Sub cmdAddEntry_Click() Private Sub cmdAddEntry_Click ()
' add a new entry to our table. 'Menambahkan entri baru ke meja kami.
With Adodc1.Recordset Dengan Adodc1.Recordset
.AddNew . AddNew
!ArtistName = txtArtistName ArtistName =! TxtArtistName
!AlbumTitle = txtAlbumTitle AlbumTitle =! TxtAlbumTitle
!Tracks = txtTrackCount Trek =! TxtTrackCount
.Update . Update
.Requery . Requery
End With Akhir Dengan

' refresh the data source and rebind it to the flexgrid (annoying!!) 'Refresh sumber data dan rebind ke flexgrid (annoying!!)
Adodc1.Refresh Adodc1.Refresh
Set MSHFlexGrid1.DataSource = Adodc1 Set MSHFlexGrid1.DataSource = Adodc1
MSHFlexGrid1.FormatString = "Artist Name | Album Title | Track Count" MSHFlexGrid1.FormatString = "Nama Artis | Judul Album | Count Track"
Call Form_Resize Call Form_Resize

' clear the text fields once the new record is added 'Mengosongkan bidang teks setelah catatan baru ditambahkan
txtArtistName = "" txtArtistName = ""
txtAlbumTitle = "" txtAlbumTitle = ""
txtTrackCount = "" txtTrackCount = ""

' set the focus back to the artist name textbox 'Mengatur fokus kembali ke nama artis textbox
txtArtistName.SetFocus txtArtistName.SetFocus
End Sub End Sub
8. Sekarang Anda memerlukan menghapus kode. Pada jendela desain form, double klik tombol Hapus yang Dipilih. Anda harus mendapatkan shell untuk cmdRemoveEntry_Click () subrutin. Ini adalah kode:
Private Sub cmdRemoveEntry_Click() Private Sub cmdRemoveEntry_Click ()
' delete an entry from the database 'Menghapus entri dari database
With Adodc1.Recordset Dengan Adodc1.Recordset
.Move (MSHFlexGrid1.Row - 1) ' we minus one because row zero is the header row ). Pindahkan (MSHFlexGrid1.Row - 1 'kita minus satu karena baris nol adalah baris header
.Delete . Hapus
.Requery . Requery
End With Akhir Dengan

' refresh the data source and rebind it to the flexgrid (annoying!!) 'Refresh sumber data dan rebind ke flexgrid (annoying!!)
Adodc1.Refresh Adodc1.Refresh
Set MSHFlexGrid1.DataSource = Adodc1 Set MSHFlexGrid1.DataSource = Adodc1
MSHFlexGrid1.FormatString = "Artist Name | Album Title | Track Count" MSHFlexGrid1.FormatString = "Nama Artis | Judul Album | Count Track"
Call Form_Resize Call Form_Resize

' set the focus back to the first add field 'Mengatur fokus kembali ke yang pertama menambah field
txtArtistName.SetFocus txtArtistName.SetFocus
End Sub End Sub
9. Oke, jika Anda pergi ke jendela desain form, Anda memiliki tiga boks teks: txtArtistName, txtAlbumTitle, dan txtTrackCount kode. Double klik pada masing-masing pada gilirannya untuk mendapatkan Perubahan terkait metode dan isi berikut ini:
Private Sub txtArtistName_Change() Private Sub txtArtistName_Change ()
' here, just check to see if each text field has contents. 'Di sini, hanya memeriksa untuk melihat apakah setiap bidang teks memiliki isi. If they all have Jika mereka semua memiliki
' contents (ie, they're not empty) enable the "Add Entry" button. 'Isi (yaitu, mereka tidak kosong) mengaktifkan "Tambah Entry" tombol.
If txtArtistName.Text <> "" And txtAlbumTitle.Text <> "" And txtTrackCount.Text <> "" Then Jika txtArtistName.Text <> "" Dan txtAlbumTitle.Text <> "" Dan txtTrackCount.Text <> "" Lalu
cmdAddEntry.Enabled = True cmdAddEntry.Enabled = True
Else Lain
cmdAddEntry.Enabled = False cmdAddEntry.Enabled = False
End If End If
End Sub End Sub

Private Sub txtAlbumTitle_Change() Private Sub txtAlbumTitle_Change ()
' just call the artist name change method because the code here would be 'Hanya memanggil metode perubahan nama artis karena kode di sini akan
' exactly the same. 'Persis sama.
Call txtArtistName_Change Call txtArtistName_Change
End Sub End Sub

Private Sub txtTrackCount_Change() Private Sub txtTrackCount_Change ()
' just call the artist name change method because the code here would be 'Hanya memanggil metode perubahan nama artis karena kode di sini akan
' exactly the same. 'Persis sama.
Call txtArtistName_Change Call txtArtistName_Change
End Sub End Sub
10. Sementara kau masih dalam txtTrackCount_Change () metode, pergi ke acara ComboBox di bagian atas jendela kode dan pilih acara penekanan tombol. Anda harus mendapatkan shell untuk txtTrackCount_KeyPress tersebut (KeyAscii sebagai Integer) method. Berikut sisa kode untuk itu, hanya menyaring dan tanda baca karakter abjad:
Private Sub txtTrackCount_KeyPress(KeyAscii As Integer) Private Sub txtTrackCount_KeyPress (KeyAscii As Integer)
' TrackKey will store which key was pressed in an _ascii_ value. 'TrackKey akan menyimpan tombol yang ditekan dalam nilai _ascii_.
Dim TrackKey As String Dim TrackKey As String
TrackKey = Chr(KeyAscii) TrackKey = Chr (KeyAscii)

' if the key pressed was a)not a number and b) not the backspace key, 'Jika tombol ditekan adalah) tidak nomor a dan b) tidak tombol backspace,
' just erase the keystroke (it won't get processed or sent) 'Hanya menghapus keystroke (tampilan tersebut tidak akan diproses atau dikirim)
If (Not IsNumeric(TrackKey) And Not (KeyAscii = vbKeyBack)) Then Jika (Tidak IsNumeric (TrackKey) Dan Tidak (KeyAscii = vbKeyBack)) Lalu
KeyAscii = 0 KeyAscii 0 =
End If End If
End Sub End Sub
Dan yang harus itu! Pastikan Anda telah menyimpan proyek Anda dalam folder yang sama seperti yang Anda tersimpan Database dari bagian atas , dan Anda harus baik untuk pergi menjalankan hal ini.