⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 frmmodifydata.frm

📁 地理信息系统工程案例精选程序,本书所有案例均需要单独配置
💻 FRM
📖 第 1 页 / 共 2 页
字号:
VERSION 5.00
Object = "{4932CEF1-2CAA-11D2-A165-0060081C43D9}#2.0#0"; "Actbar2.OCX"
Object = "{86CF1D34-0C5F-11D2-A9FC-0000F8754DA1}#2.0#0"; "MSCOMCT2.OCX"
Object = "{831FDD16-0C5C-11D2-A9FC-0000F8754DA1}#2.0#0"; "MSCOMCTL.OCX"
Begin VB.Form frmModifyData 
   BorderStyle     =   1  'Fixed Single
   Caption         =   "数据输入"
   ClientHeight    =   6345
   ClientLeft      =   45
   ClientTop       =   435
   ClientWidth     =   8610
   Icon            =   "frmModifyData.frx":0000
   LinkTopic       =   "Form1"
   MaxButton       =   0   'False
   MinButton       =   0   'False
   ScaleHeight     =   6345
   ScaleWidth      =   8610
   StartUpPosition =   1  '所有者中心
   Begin VB.Data Data1 
      Caption         =   "Data1"
      Connect         =   "Access 2000;"
      DatabaseName    =   ""
      DefaultCursorType=   0  '缺省游标
      DefaultType     =   2  '使用 ODBC
      Exclusive       =   0   'False
      Height          =   405
      Left            =   120
      Options         =   0
      ReadOnly        =   0   'False
      RecordsetType   =   1  'Dynaset
      RecordSource    =   ""
      Top             =   6480
      Visible         =   0   'False
      Width           =   1455
   End
   Begin VB.Frame fraData 
      Caption         =   "[显示]"
      BeginProperty Font 
         Name            =   "宋体"
         Size            =   12
         Charset         =   134
         Weight          =   400
         Underline       =   0   'False
         Italic          =   0   'False
         Strikethrough   =   0   'False
      EndProperty
      ForeColor       =   &H00FF0000&
      Height          =   5775
      Left            =   120
      TabIndex        =   13
      Top             =   480
      Width           =   4335
      Begin MSComctlLib.ListView lstAppData 
         Height          =   4935
         Left            =   120
         TabIndex        =   14
         Top             =   720
         Width           =   4095
         _ExtentX        =   7223
         _ExtentY        =   8705
         View            =   3
         LabelEdit       =   1
         LabelWrap       =   -1  'True
         HideSelection   =   -1  'True
         FullRowSelect   =   -1  'True
         GridLines       =   -1  'True
         _Version        =   393217
         ForeColor       =   -2147483640
         BackColor       =   -2147483643
         BorderStyle     =   1
         Appearance      =   1
         NumItems        =   2
         BeginProperty ColumnHeader(1) {BDD1F052-858B-11D1-B16A-00C0F0283628} 
            Text            =   "属性"
            Object.Width           =   2540
         EndProperty
         BeginProperty ColumnHeader(2) {BDD1F052-858B-11D1-B16A-00C0F0283628} 
            SubItemIndex    =   1
            Text            =   "值"
            Object.Width           =   2540
         EndProperty
      End
      Begin MSComctlLib.ListView lstMapData 
         Height          =   2175
         Left            =   120
         TabIndex        =   15
         Top             =   720
         Width           =   4095
         _ExtentX        =   7223
         _ExtentY        =   3836
         View            =   3
         LabelWrap       =   -1  'True
         HideSelection   =   -1  'True
         FullRowSelect   =   -1  'True
         GridLines       =   -1  'True
         _Version        =   393217
         ForeColor       =   -2147483640
         BackColor       =   -2147483643
         BorderStyle     =   1
         Appearance      =   1
         NumItems        =   2
         BeginProperty ColumnHeader(1) {BDD1F052-858B-11D1-B16A-00C0F0283628} 
            Text            =   "属性"
            Object.Width           =   2540
         EndProperty
         BeginProperty ColumnHeader(2) {BDD1F052-858B-11D1-B16A-00C0F0283628} 
            SubItemIndex    =   1
            Text            =   "值"
            Object.Width           =   2540
         EndProperty
      End
      Begin VB.Label Label4 
         Caption         =   "扩展数据:"
         Height          =   255
         Left            =   120
         TabIndex        =   16
         Top             =   360
         Width           =   1215
      End
      Begin VB.Label Label1 
         Caption         =   "基本数据:"
         Height          =   255
         Left            =   120
         TabIndex        =   17
         Top             =   360
         Width           =   1095
      End
   End
   Begin VB.Frame fraInput 
      Caption         =   "[输入]"
      BeginProperty Font 
         Name            =   "宋体"
         Size            =   12
         Charset         =   134
         Weight          =   400
         Underline       =   0   'False
         Italic          =   0   'False
         Strikethrough   =   0   'False
      EndProperty
      ForeColor       =   &H00FF0000&
      Height          =   5775
      Left            =   4560
      TabIndex        =   1
      Top             =   480
      Width           =   3975
      Begin VB.CommandButton cmdPic 
         Caption         =   "导入外部图形"
         Height          =   375
         Left            =   1080
         TabIndex        =   20
         Top             =   1680
         Visible         =   0   'False
         Width           =   1455
      End
      Begin VB.ComboBox cmbText 
         Appearance      =   0  'Flat
         Height          =   300
         Left            =   1080
         TabIndex        =   19
         Text            =   "cmbText"
         Top             =   1680
         Visible         =   0   'False
         Width           =   2775
      End
      Begin VB.TextBox txtField 
         Appearance      =   0  'Flat
         BackColor       =   &H8000000B&
         Height          =   270
         Left            =   1080
         Locked          =   -1  'True
         TabIndex        =   8
         Top             =   480
         Width           =   2775
      End
      Begin VB.TextBox txtNumber 
         Appearance      =   0  'Flat
         Height          =   270
         Left            =   1080
         TabIndex        =   7
         Top             =   1680
         Width           =   2775
      End
      Begin VB.TextBox txtType 
         Appearance      =   0  'Flat
         BackColor       =   &H8000000B&
         Height          =   270
         Left            =   1080
         Locked          =   -1  'True
         TabIndex        =   5
         Top             =   1080
         Width           =   975
      End
      Begin VB.TextBox txtLength 
         Appearance      =   0  'Flat
         BackColor       =   &H8000000B&
         Height          =   270
         Left            =   3120
         Locked          =   -1  'True
         TabIndex        =   4
         Top             =   1080
         Width           =   735
      End
      Begin VB.TextBox txtText 
         Appearance      =   0  'Flat
         Height          =   735
         Left            =   1080
         ScrollBars      =   2  'Vertical
         TabIndex        =   3
         Top             =   1680
         Visible         =   0   'False
         Width           =   2775
      End
      Begin VB.ListBox lstSelect 
         Height          =   2580
         Left            =   120
         TabIndex        =   2
         Top             =   3070
         Width           =   3735
      End
      Begin MSComCtl2.DTPicker txtData 
         Height          =   270
         Left            =   1080
         TabIndex        =   6
         Top             =   1680
         Visible         =   0   'False
         Width           =   2775
         _ExtentX        =   4895
         _ExtentY        =   476
         _Version        =   393216
         Format          =   64618497
         CurrentDate     =   37540
      End
      Begin VB.Label Label2 
         Caption         =   "参考:"
         Height          =   255
         Left            =   120
         TabIndex        =   18
         Top             =   2640
         Width           =   855
      End
      Begin VB.Label Label3 
         Caption         =   "值:"
         Height          =   255
         Left            =   120
         TabIndex        =   12
         Top             =   1680
         Width           =   855
      End
      Begin VB.Label Label6 
         Caption         =   "字段名:"
         Height          =   255
         Left            =   120
         TabIndex        =   11
         Top             =   480
         Width           =   975
      End
      Begin VB.Label Label7 
         Caption         =   "数据类型:"
         Height          =   255
         Left            =   120
         TabIndex        =   10
         Top             =   1080
         Width           =   975
      End
      Begin VB.Label Label8 
         Caption         =   "字段长度:"
         Height          =   255
         Left            =   2160
         TabIndex        =   9
         Top             =   1080
         Width           =   975
      End
   End
   Begin ActiveBar2LibraryCtl.ActiveBar2 ActiveBar21 
      Align           =   1  'Align Top
      Height          =   495
      Left            =   0
      TabIndex        =   0
      Top             =   0
      Width           =   8610
      _LayoutVersion  =   1
      _ExtentX        =   15187
      _ExtentY        =   873
      _DataPath       =   ""
      Bands           =   "frmModifyData.frx":08A6
   End
End
Attribute VB_Name = "frmModifyData"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False

'------------------------------------------------------------------------------------------
'2002-10-23
'重写自动完成功能,删除两个多余的数据空间,不用SQL关键字Distinct,而采用MO.Strings生成
'经验列表lstSelect;改进软件界面。
'2002-10-13
'重写数据转换模块,解决数据类型转换问题
'将mdb数据与dbf数据库作为扩展数据和基本数据分开定位和输入
'重新整理程序,重写大多数模块
'
'窗口执行数据修改功能
'在显示窗口前,现将RecModify定位到需要修改的记录,
'在修改前先断开所有数据连接
'
'由于mo的数据修改只能直接进行,不能用SQL过滤后修改,
'所以先用Locator函数对需要修改的纪录进行定位。
'基本数据是shape格式所带的数据(Dbase格式),扩展数据是用relation关联的Access数据
'
'通过mo访问修改数据,由于mo内置数据引擎问题(DBase),功能受到诸多限制,考虑全部使用jet访问
'------------------------------------------------------------------------------------------
Private Index As Long
Private strID As String
Public Sub InitForm(lIndex As Long)
'--------------------------------------------------------------------------------------
'初始化操作
'--------------------------------------------------------------------------------------

Index = lIndex
strID = RecModify.Fields("SID").ValueAsString

Call RefreshMapData

If CustomLayers(Index).RelationCount > 0 Then
    Call RefreshAppData
    lstAppData.Enabled = True
Else
    lstAppData.Enabled = False
End If

    
End Sub
Private Function fnUpdataMapData() As Boolean
'--------------------------------------------------------------------------------------
'基本数据存入数据库
'--------------------------------------------------------------------------------------
Dim lplst As Long
Dim FieldX As Field
        
If Not RecModify.Updatable Then
    fnUpdataMapData = False
    Exit Function
End If
RecModify.StopEditing

DoEvents

RecModify.Edit


For lplst = 1 To lstMapData.ListItems.Count

    Set FieldX = RecModify.Fields(lstMapData.ListItems(lplst).text)

            
    Select Case FieldX.Type
        Case moDate
            FieldX.Value = CDate(lstMapData.ListItems(lplst).ListSubItems("Attribut").text)
        Case moString
            FieldX.Value = CStr(lstMapData.ListItems(lplst).ListSubItems("Attribut").text)
        Case moLong
            FieldX.Value = CLng(lstMapData.ListItems(lplst).ListSubItems("Attribut").text)
        Case moDouble
            FieldX.Value = CDbl(lstMapData.ListItems(lplst).ListSubItems("Attribut").text)
    End Select



Next lplst
RecModify.Update
RecModify.StopEditing
fnUpdataMapData = True
End Function
Private Function fnUpdataAppData() As Boolean
'--------------------------------------------------------------------------------------
'扩展数据存入数据库
'--------------------------------------------------------------------------------------

Dim lplst As Long
Dim FieldX As dao.Field
If lstAppData.ListItems.Count <= 0 Then
    fnUpdataAppData = True
    Exit Function
End If
On Error Resume Next

Data1.DatabaseName = CustomLayers(Index).Relation(0).Database
Data1.RecordSource = "select * from " & CustomLayers(Index).Relation(0).Table & " where ID=" & RecModify.Fields("ID").ValueAsString
Data1.Refresh

If Not Data1.Recordset.Updatable Then
    fnUpdataAppData = False
    Exit Function
End If

Dim PicName As String

If Not Data1.Recordset.EOF Then
    Data1.Recordset.Edit
    For lplst = 1 To lstAppData.ListItems.Count
        Set FieldX = Data1.Recordset.Fields(lstAppData.ListItems(lplst).Key)
        If FieldX.Name = CustomLayers(Index).PictureField Then
            PicName = ImportPicture(lstAppData.ListItems(lplst).ListSubItems("Attribut").text)
            If PicName <> "" Then FieldX.Value = PicName
        Else
            Select Case FieldX.Type
        
                Case dbLong
                    FieldX.Value = Val(lstAppData.ListItems(lplst).ListSubItems("Attribut").text)
                Case dbInteger
                    FieldX.Value = CInt(lstAppData.ListItems(lplst).ListSubItems("Attribut").text)
                Case dbSingle
                    FieldX.Value = CSng(lstAppData.ListItems(lplst).ListSubItems("Attribut").text)
                Case dbDouble
                    FieldX.Value = CDbl(lstAppData.ListItems(lplst).ListSubItems("Attribut").text)
                Case dbText
                    FieldX.Value = CStr(lstAppData.ListItems(lplst).ListSubItems("Attribut").text)
                    
                Case dbDate
                    FieldX.Value = CDate(lstAppData.ListItems(lplst).ListSubItems("Attribut").text)
            End Select
        End If
        
    Next lplst
    Data1.Recordset.Update
End If

Data1.DatabaseName = ""
Data1.Refresh

fnUpdataAppData = True

End Function
Private Sub RefreshMapData()
'--------------------------------------------------------------------------------------
'基本数据更新
'--------------------------------------------------------------------------------------
Dim lpointer As Long
Dim ListX As ListItem
lstMapData.ListItems.Clear
For lpointer = 0 To RecModify.TableDesc.FieldCount - 1
    
    If RecModify.TableDesc.FieldName(lpointer) <> "SID" Then
        Set ListX = lstMapData.ListItems.Add(Key:=RecModify.TableDesc.FieldName(lpointer), text:=RecModify.TableDesc.FieldName(lpointer))
        ListX.ListSubItems.Add text:=RecModify.Fields(RecModify.TableDesc.FieldName(lpointer)).ValueAsString, Key:="Attribut"
    End If
    
Next lpointer
    
End Sub
Private Sub RefreshAppData()
'--------------------------------------------------------------------------------------
'扩展数据更新
'--------------------------------------------------------------------------------------

Dim lpointer As Long
Dim ListX As ListItem

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -