📄 frm_sql.frm
字号:
For Each fld In frm_main.Map1.Layers(cbo_lyr.Text).Records.Fields
lst_fld.AddItem fld.Name
Select Case fld.Type
Case 0
lst_typ.AddItem "无"
Case 3
lst_typ.AddItem "Long"
Case 5
lst_typ.AddItem "Double"
Case 7
lst_typ.AddItem "Date"
Case 8
lst_typ.AddItem "String"
Case 11
lst_typ.AddItem "Boolean"
Case 21
lst_typ.AddItem "Point"
Case 22
lst_typ.AddItem "Line"
Case 23
lst_typ.AddItem "Polygon"
Case 24
lst_typ.AddItem "Points"
End Select
Next
Sql_create
End Sub
Private Sub cbo_math_Click()
If txt_fld.Text = "" Then
txt_fld.Text = cbo_math.Text
Else
txt_fld.Text = txt_fld.Text + "," + cbo_math.Text
End If
Sql_create
End Sub
Private Sub cbo_string_Click()
If txt_fld.Text = "" Then
txt_fld.Text = cbo_string.Text
Else
txt_fld.Text = txt_fld.Text + "," + cbo_string.Text
End If
Sql_create
End Sub
Private Sub cmd_clear_Click()
If str = "txt_fld" Then
txt_fld.Text = ""
ElseIf str = "txt_factor" Then
txt_factor.Text = ""
ElseIf str = "txt_fld_div" Then
txt_fld_div.Text = ""
ElseIf str = "txt_fld_ord" Then
txt_fld_ord.Text = ""
End If
End Sub
Private Sub cmd_close_Click()
Unload frm_sql
End Sub
Private Sub cmd_qry_Click()
'On Error GoTo deal_with
gg = 111
Dim lyr, lyr_set As MapLayer
Dim i, n As Integer
Dim lyrs As MapObjects2.Layers
Dim sql_Expression As String
Dim shp As Object
Set sym_Selection = New MapObjects2.Symbol
Set lyr = New MapLayer
Set lyr = frm_main.Map1.Layers(cbo_lyr)
sym_Selection.SymbolType = lyr.Symbol.SymbolType
sym_Selection.Color = moDarkGreen
sql_Expression = txt_factor.Text
Set lyrs = frm_main.Map1.Layers
For i = 1 To frm_main.Map1.Layers.Count
If lyr.Name = frm_main.Map1.Layers.Item(i - 1).Name Then
n = i - 1
End If
Next
lyrs.MoveToTop (n)
'设置活动图层,活动图层移动至最顶层
Set recSelection = lyr.SearchExpression(sql_Expression)
'frm_main.Map1.Refresh
frm_sql.Hide
Set shp = recSelection.Fields("shape").Value
frm_main.Map1.FlashShape shp, 3
'deal_with:
' Exit Sub
End Sub
Private Sub Form_Load()
Dim i As Integer
Dim lyr As MapLayer
str = ""
If frm_main.Map1.Layers.Count <> 0 Then
cbo_lyr.Clear
For i = 1 To frm_main.Map1.Layers.Count
Set lyr = New MapLayer
Set lyr = frm_main.Map1.Layers.Item(i - 1)
cbo_lyr.AddItem lyr.Name
Next
End If
txt_fld.Text = "*"
txt_factor = ""
txt_fld_ord = ""
txt_fld_div = ""
'txt_factor.Enabled = False
'txt_fld.Enabled = False
'txt_fld_div.Enabled = False
'txt_fld_ord.Enabled = False
cbo_cal.AddItem "+"
cbo_cal.AddItem "-"
cbo_cal.AddItem "*"
cbo_cal.AddItem "/"
cbo_cal.AddItem ">"
cbo_cal.AddItem "="
cbo_cal.AddItem "<"
cbo_cal.AddItem ">="
cbo_cal.AddItem "<="
cbo_cal.AddItem "<>"
cbo_cal.AddItem "!"
cbo_cal.AddItem "("
cbo_cal.AddItem ")"
cbo_cal.AddItem "["
cbo_cal.AddItem "]"
cbo_cal.AddItem "'"
cbo_cal.AddItem "%"
cbo_cal.AddItem "#"
cbo_cal.AddItem "^"
cbo_cal.AddItem "."
cbo_cal.AddItem "AND"
cbo_cal.AddItem "OR"
cbo_cal.AddItem "NOT"
cbo_cal.AddItem "In"
cbo_cal.AddItem "Between"
cbo_cal.AddItem "Like"
cbo_cal.AddItem "Is NULL"
cbo_cal.AddItem "Is TRUE"
cbo_cal.AddItem "Is FALSE"
'=========================
cbo_add.AddItem "Avg()"
cbo_add.AddItem "Count()"
cbo_add.AddItem "Max ()"
cbo_add.AddItem "Min()"
cbo_add.AddItem "Sum()"
cbo_add.AddItem "Stdev()"
cbo_add.AddItem "Stdevp()"
cbo_add.AddItem "Var()"
cbo_add.AddItem "Varp ()"
'================================
cbo_math.AddItem "Abs()"
cbo_math.AddItem "Acos()"
cbo_math.AddItem "Asin()"
cbo_math.AddItem "Atan()"
cbo_math.AddItem "Atn2()"
cbo_math.AddItem "Ceiling()"
cbo_math.AddItem "Cos()"
cbo_math.AddItem "Cot()"
cbo_math.AddItem "CBool()"
cbo_math.AddItem "CByte()"
cbo_math.AddItem "CCur()"
cbo_math.AddItem "CDate()"
cbo_math.AddItem "CDbl()"
cbo_math.AddItem "CInt()"
cbo_math.AddItem "CLng()"
cbo_math.AddItem "CSng()"
cbo_math.AddItem "CStr()"
cbo_math.AddItem "Int()"
cbo_math.AddItem "Fix()"
cbo_math.AddItem "Degrees()"
cbo_math.AddItem "Exp ()"
cbo_math.AddItem "Floor()"
cbo_math.AddItem "Log ()"
cbo_math.AddItem "Log10()"
cbo_math.AddItem "PI()"
cbo_math.AddItem "Power()"
cbo_math.AddItem "Radians()"
cbo_math.AddItem "Rand()"
cbo_math.AddItem "Round()"
'=================================
cbo_string.AddItem "Ascii()"
cbo_string.AddItem "Char()"
cbo_string.AddItem "Charindex()"
cbo_string.AddItem "Difference()"
cbo_string.AddItem "Left()"
cbo_string.AddItem "Len()"
cbo_string.AddItem "Lower()"
cbo_string.AddItem "Ltrim()"
cbo_string.AddItem "Nchar()"
cbo_string.AddItem "Patindex()"
cbo_string.AddItem "Replace()"
cbo_string.AddItem "Replicate()"
cbo_string.AddItem "Quotename()"
cbo_string.AddItem "Reverse()"
cbo_string.AddItem "Right()"
cbo_string.AddItem "Rtrim()"
cbo_string.AddItem "Soundex()"
cbo_string.AddItem "Space()"
cbo_string.AddItem "Str ()"
cbo_string.AddItem "Stuff()"
cbo_string.AddItem "Substring()"
cbo_string.AddItem "Upper ()"
cbo_string.AddItem "Upper ()"
'====================================
cbo_date.AddItem "DATEADD()"
cbo_date.AddItem "Datediff()"
cbo_date.AddItem "Datename()"
cbo_date.AddItem "Datepart()"
cbo_date.AddItem "Day()"
cbo_date.AddItem "Getdate()"
cbo_date.AddItem "Getutcdate()"
cbo_date.AddItem "Month()"
cbo_date.AddItem "Year()"
'=====================================
Sql_create
End Sub
Private Sub lst_fld_Click()
Dim Str_lft, Str_rht, Str_mid As String
Dim Int_len, Int_len_lft, Int_len_rht As Integer
Str_fld = txt_fld.Text
Int_len = Len(Str_fld)
Str_lft = Mid(Str_fld, 1, Int_len - 1)
If Int_len > 1 Then
Str_rht = Mid(Str_fld, Int_len, 1)
End If
Int_len_lft = InStrRev(Str_fld, "(")
Int_len_rht = Len(Str_rht)
If str = "txt_fld" Then
If txt_fld.Text = "" Or txt_fld.Text = "*" Then
txt_fld.Text = lst_fld.List(lst_fld.ListIndex)
ElseIf Str_rht = ")" And Int_len_lft + Int_len_rht = Int_len Then
txt_fld.Text = Str_lft + lst_fld.List(lst_fld.ListIndex) + Str_rht
Else
txt_fld.Text = txt_fld.Text + "," + lst_fld.List(lst_fld.ListIndex)
End If
ElseIf str = "txt_factor" Then
If txt_factor.Text = "" Then
txt_factor.Text = lst_fld.List(lst_fld.ListIndex)
Else
txt_factor.Text = txt_factor.Text + "," + lst_fld.List(lst_fld.ListIndex)
End If
ElseIf str = "txt_fld_div" Then
If txt_fld_div.Text = "" Then
txt_fld_div.Text = lst_fld.List(lst_fld.ListIndex)
Else
txt_fld_div.Text = txt_fld_div + "," + lst_fld.List(lst_fld.ListIndex)
End If
ElseIf str = "txt_fld_ord" Then
If txt_fld_ord.Text = "" Then
txt_fld_ord.Text = lst_fld.List(lst_fld.ListIndex)
Else
txt_fld_ord.Text = txt_fld_ord.Text + "," + lst_fld.List(lst_fld.ListIndex)
End If
End If
Sql_create
End Sub
Private Sub opt_asc_Click()
Sql_create
End Sub
Private Sub opt_desc_Click()
Sql_create
End Sub
Private Sub txt_factor_Change()
Sql_create
End Sub
Private Sub txt_factor_Click()
str = "txt_factor"
End Sub
Private Sub txt_fld_Change()
Sql_create
End Sub
Private Sub txt_fld_Click()
str = "txt_fld"
'txt_fld.Enabled = True
'If txt_factor.Enabled = True Then
' txt_factor.Enabled = False
'ElseIf txt_fld_div.Enabled = True Then
' txt_fld_div.Enabled = False
'ElseIf txt_fld_ord.Enabled = True Then
' txt_fld_ord.Enabled = False
'End If
End Sub
Private Sub txt_fld_div_Change()
Sql_create
End Sub
Private Sub txt_fld_div_Click()
str = "txt_fld_div"
End Sub
Private Sub txt_fld_MouseMove(Button As Integer, Shift As Integer, x As Single, y As Single)
txt_fld.Enabled = True
End Sub
Private Sub txt_fld_ord_Change()
Sql_create
End Sub
Private Sub txt_fld_ord_Click()
str = "txt_fld_ord"
End Sub
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -