Senin, 10 April 2017

belajargis_official

VBA (Visual Basic Aplication) pada Arcgis 10.3.1


         VBA (visual basic aplication) merupakan bahasa pemprograman yang umum digunakan, penggunaan vba pada dasarnya untuk mempermudah user dalam membangun dan mendesain program yang lebih efisien. 
kegunaan VBA pada Arcgis adalah untuk mengotomatisasi  pekerjaan, pekerjaan yang dimaksud adalah pekerjaan yang dilakukan secara berulang-ulang dan pekerjaan yang kompleks.
berikut kami akan mendesain tombol pencarian data menggunakan vba agar memudahkan pencarian data dalam table Arcgis yang telah dibangun sebelumnya. jika anda menggunakan Arcgis 10.3.1 maka terlebih dahulu instal vba yang kompatible dapat di download disini
tahapannya sebagai berikut :

Tahap 1. jalankan Arcgis lalu masukan peta yang telah memiliki data dalam table, dalam hal ini kami akan menggunakan peta batas wilayah yang didalamnya memuat data nama desa.

Tahap 2. pada menu arcgis pilih Customize lalu VBA Macros pilih Visual Basic Editor atau kalau mau gampang tekan aja tombol (alt + f11)

Tahap 3. pada vba pilih Insert lalu UserForm untuk mendesain tampilannya.

Tahap 4. pada UserForm pilih CommandButton lalu pada caption tulis CARI, lalu buat ComboBox 

Tahap 5. klik 2x UserForm1 lalu masukkan (Copy-Paste) bahasa pemprograman dibawah

Private Sub CommandButton1_Click()
Dim pDoc As IMxDocument
    Dim pMap As IMap
    Dim pLayer As IFeatureLayer
    Dim pFc As IFeatureClass
    Dim pQf As IQueryFilter
    Dim pSelSet As ISelectionSet
    Dim pFSel As IFeatureSelection
    
    Set pDoc = ThisDocument
    Set pMap = pDoc.FocusMap
    
    For i = 0 To pMap.LayerCount - 1
        If UCase(pMap.Layer(i).Name) = UCase("adm_desa") Then
                Set pLayer = pMap.Layer(i)
                Exit For
        End If
    Next
    Set pFc = pLayer.FeatureClass
    
    'Create the query filter
    Set pQf = New QueryFilter
     pQf.WhereClause = "Desa = '" & ComboBox1.Value & "'"

    'Get the features that meet the where clause
    Set pSelSet = pFc.Select(pQf, esriSelectionTypeIDSet, esriSelectionOptionNormal, Nothing)
    
    'Apply the selection
    Set pFSel = pLayer
    Set pFSel.SelectionSet = pSelSet
    pDoc.ActiveView.Refresh

End Sub

Tahap 5. klik 2x  tombol CARI lalu masukkan bahasa pemprograman dibawah

Private Sub UserForm_Click()
Dim pMxDoc As IMxDocument
    Dim PFLayer As IFeatureLayer
    Dim pFc As IFeatureClass
    Dim pFeat As IFeature
    Dim i As Integer

    Set pMxDoc = ThisDocument
    For i = 0 To pMxDoc.FocusMap.LayerCount - 1
            If (UCase(pMxDoc.FocusMap.Layer(i).Name) = UCase("adm_desa")) Then
                    Set PFLayer = pMxDoc.FocusMap.Layer(i)
                    Exit For
            End If
    Next
    Set pFc = PFLayer.FeatureClass
    
    'sort nama sungai
    Dim pTableSort As ITableSort
    Set pTableSort = New TableSort
    pTableSort.Fields = "Desa"
    pTableSort.Ascending("Desa") = True
    Set pTableSort.Table = pFc
    pTableSort.Sort Nothing
           
    'Return a cursor for all the features
    Dim pFCur As IFeatureCursor
    Set pFCur = pTableSort.Rows
    Set pFeat = pFCur.NextFeature
    
    Dim namaExists As Boolean
    namaExists = False

    Do Until pFeat Is Nothing
          nama = pFeat.Value(pFeat.Fields.FindField("Desa"))
        
          'Check for duplicate name
          For i = 0 To ComboBox1.ListCount - 1
                 If nama = ComboBox1.List(i) Then
                       namaExists = True
                 Else: End If
          Next i
          
          Select Case namaExists
                  Case False
                          ComboBox1.AddItem nama
                  Case Else
          End Select
          namaExists = False
          
          Set pFeat = pFCur.NextFeature
    Loop
    
    ComboBox1.ListIndex = 0

End Sub

Tahap 5. cek hasilnya dengan klik run

jika anda menggunakan peta sendiri bisa dicoba dengan menganti sesuai peta dan data anda, ganti nama layer adm_desa dengan layer peta anda, dan field desa dengan field data anda.

selamat mencoba...!!!

ARTIKEL TERKAIT :






belajargis_official

About belajargis_official -

Author Description here.. belajararcgis.blogspot.co.id

Subscribe to this Blog via Email :

2 komentar

Write komentar
Unknown
AUTHOR
7 November 2018 pukul 07.56 delete

Terimakasih atas tulisan yang bermafaat, semoga kedepannya lebih banyak tulisan tulisan seperti ini.
Jangan lupa mampir ke website saya https://nsr.mahasiswa.atmaluhur.ac.id/
dan website kampus saya www.atmaluhur.ac.id

Reply
avatar
Rooro
AUTHOR
11 Mei 2019 pukul 20.58 delete

Obyek yg dipakai arcgis apa pak klau di excrl pakai sheet, klsu ada panduannya vba utk arcgis mohon info, mantab tulisannya

Reply
avatar