请教高人指教!!我写了一个新建图层的代码,新建图层之后,当我再打开的时候,并不能正确打开原来新建的图层,我的系统已经与自己做的数据库正确连接,而且在下面的Private Sub OKButton_Click()这个函数中,当我在系统中设置这些文本点击确定之后,我所设置的内容在数据库中并没有更新,我自己没有发现代码中的问题,请教高人指点,谢谢!!!
Private Sub mnuNew_Click()
    Dim Lyr As MapXLib.Layer
    Dim LyrName As String '图层名
    Dim FwZL As String '房屋座落
    Dim LyrLineName As String '线层名
    Dim tbFn As String '图层表文件名
    Dim tbFnLine As String '线层表文件名
    Dim szSQL As String
    Dim rs As ADODB.Recordset
    Dim frm As frmSetWidthHeight
    Dim LyrInfo As New MapXLib.LayerInfo
    Dim flds As New MapXLib.Fields
    Dim fs As Scripting.FileSystemObject
    
    On Error GoTo ErrHandler
    '设置边框及座落
    Set frm = New frmSetWidthHeight
    Load frm
    frm.Show vbModal
    If frm.IsCanceled Then
        Exit Sub
    End If
        
    MAP_WIDTH = frm.MapWidth
    MAP_HEIGHT = frm.MapHeight
    SHORTEST_DISTANCE = MAP_WIDTH / SHORTEST_TIME
    FwZL = frm.MapLocation
    '----------------------------
    Screen.MousePointer = 11
    '-----------------------------------------------------------------------
    '根据数据库的集合生成新的Layer Name
    '-----------------------------------------------------------------------
    '打开数据库记录集合
    szSQL = "SELECT Max(LyrName) as LayerName FROM tbTable"
    Set rs = New ADODB.Recordset
    rs.Open szSQL, MAP_CONN, adOpenKeyset, adLockPessimistic, adCmdText
    rs.MoveFirst
    'generate the new layer name
    If IsNull(rs("LayerName").Value) Then
      LyrName = ""
    Else
      LyrName = CStr(rs("LayerName").Value)
    End If
    
    LyrName = GetNewLayerName(rs("LayerName"))
    tbFn = TABLE_PATH & LyrName & ".tab"
    LyrLineName = LyrName & "L"
    tbFnLine = TABLE_PATH & LyrLineName & ".tab"
    
    '关闭图形文件
    Call CloseCurrentMap
    '----------------------------
    '建边框
    Call SetNumreicCoordSys(MAP_WIDTH, MAP_HEIGHT)
    SetMapBorder Map1, MAP_WIDTH, MAP_HEIGHT
    
    '创建面图图层
    Set fs = New Scripting.FileSystemObject
    '------------------------
    If fs.FileExists(tbFn) Then
        fs.DeleteFile tbFn
    End If
    Set Lyr = Map1.Layers.CreateLayer(LyrName, tbFn, 2)
    
    Lyr.Editable = False
    Lyr.ShowNodes = True
    Lyr.Selectable = False
    
    '创建线图图层
    '------------------------
    If fs.FileExists(tbFnLine) Then
        fs.DeleteFile (tbFnLine)
    End If
    
    Set fs = Nothing
    
    flds.AddNumericField "DIST", 10, 2
    LyrInfo.Type = miLayerInfoTypeNewTable
    LyrInfo.AddParameter "FileSpec", tbFnLine
    LyrInfo.AddParameter "Name", LyrLineName
    LyrInfo.AddParameter "Fields", flds
    
    Set Lyr = Map1.Layers.Add(LyrInfo, 1)
    Map1.DataSets.Add miDataSetLayer, Lyr, "DISTANCE"
    
    On Error Resume Next
    Lyr.Editable = True
    Lyr.ShowNodes = True
    Lyr.Selectable = True
    'set the current layer name
    CURRENT_LAYER = LyrLineName
    REGION_LAYER = LyrName
    LINE_LAYER = LyrLineName
    On Error GoTo ErrHandler
    '在数据库里添加一条记录
    MAP_CONN.Execute "INSERT INTO tbTable(LyrName,zl,width,height) " & _
                     " VALUES('" & REGION_LAYER & "','" & FwZL & "'," & CStr(MAP_WIDTH) & "," & CStr(MAP_HEIGHT) & ")"
    'refresh the buttons
    Call UpdateToolbarButtons
    'close the rs
    If Not rs Is Nothing Then
        If rs.State = adStateOpen Then
            rs.Close
        End If
        Set rs = Nothing
    End If
    '--------------------
    Call UpdateSystemTitle
    '----------------------------------
    SendKeys "{F4}"
    '----------------------------------
    Screen.MousePointer = 0
    Exit Sub
ErrHandler:
    Screen.MousePointer = 0
    Map1.MousePointer = miArrowCursor
    If Not fs Is Nothing Then
        Set fs = Nothing
    End If
    If Not rs Is Nothing Then
        If rs.State = adStateOpen Then
            rs.Close
        End If
        Set rs = Nothing
    End If
    'MsgBox "不能创建新图,可能的原因是系统日期设置不正确!", vbOKOnly + vbInformation, Me.Caption
    ErrMessageBox "New", Me.Caption
End SubPrivate Sub SetMapBorder(MapX45 As Map, ByVal aWidth As Double, ByVal aHeight As Double)
    Dim tbBorder As String '边框文件名
    Dim LyrBorder As String '层名
    Dim files As Scripting.FileSystemObject
    Dim LyrInfo As New MapXLib.LayerInfo
    Dim Lyr As MapXLib.Layer
    Dim pts As Points
    Dim f As Feature
    Dim pt As Point
    
    tbBorder = TABLE_PATH & "border.tab"
    LyrBorder = "Border"
    
    '先判断文件是否存在
    Set files = New Scripting.FileSystemObject
    If files.FileExists(tbBorder) Then
        '删除Border图层
        files.DeleteFile TABLE_PATH & "border.*"
    End If
    Set Lyr = Map1.Layers.CreateLayer(LyrBorder, tbBorder)
    
    Lyr.Editable = False
    Lyr.ShowNodes = False
    Lyr.Selectable = False
    '画边框
    DrawBorder MapX45, Lyr, aWidth, aHeight
End Sub
Private Sub DrawBorder(MapX45 As Map, Lyr As MapXLib.Layer, ByVal aWidth As Double, ByVal aHeight As Double)
    Dim f As New Feature
    Dim fs As Features
    Dim pts As New Points
    Dim pt As New Point
    Dim lsty As MapXLib.Style
    Dim sp As Long
    
    sp = 0.1
    Set fs = Lyr.AllFeatures
    '行删除Features
    For Each f In fs
        Lyr.DeleteFeature (f.FeatureKey)
    Next
    '画线
    pt.Set 0, 0
    pts.Add pt
    pt.Set aWidth - sp, 0
    pts.Add pt
    
    f.Attach MapX45
    f.Type = miFeatureTypeLine
    f.Parts.Add pts
    
    Set lsty = f.Style
    lsty.LineColor = RGB(255, 0, 0)
    lsty.LineStyle = 63
    
    Lyr.AddFeature f
    '-----------------
    f.Parts.RemoveAll
    pts.RemoveAll
    
    pt.Set 0, 0
    pts.Add pt
    pt.Set 0, aHeight - sp
    pts.Add pt
    
    f.Attach MapX45
    f.Type = miFeatureTypeLine
    f.Parts.Add pts
    
    Set lsty = f.Style
    lsty.LineColor = RGB(255, 0, 0)
    lsty.LineStyle = 63
    
    Lyr.AddFeature f
    '-----------------
    f.Parts.RemoveAll
    pts.RemoveAll
    
    pt.Set aWidth - sp, 0
    pts.Add pt
    pt.Set aWidth - sp, aHeight - sp
    pts.Add pt
    
    f.Attach MapX45
    f.Type = miFeatureTypeLine
    f.Parts.Add pts
    
    Set lsty = f.Style
    lsty.LineColor = RGB(255, 0, 0)
    lsty.LineStyle = 63
    
    Lyr.AddFeature f
    '---------------------------
    f.Parts.RemoveAll
    pts.RemoveAll
    
    pt.Set aWidth - sp, aHeight - sp
    pts.Add pt
    pt.Set 0, aHeight - sp
    pts.Add pt
    
    f.Attach MapX45
    f.Type = miFeatureTypeLine
    f.Parts.Add pts
    
    Set lsty = f.Style
    lsty.LineColor = RGB(255, 0, 0)
    lsty.LineStyle = 63
    
    Lyr.AddFeature f
End SubPrivate Sub OKButton_Click()
    Dim szSQL As String
    On Error Resume Next
    'save the modification
    szSQL = "UPDATE tbTable SET zl='" & txtLocation.Text & "'," & _
                                "Bjcdw='" & txtBjcdw.Text & "'," & _
                                "Cly='" & txtCly.Text & "'," & _
                                "Hyy='" & txtHyy.Text & "'," & _
                                "Jzmc='" & txtJzmc.Text & "'," & _
                                "Memo='" & txtMemo.Text & "' " & _
                                "WHERE LyrName='" & REGION_LAYER & "'"
    MAP_CONN.Execute szSQL
    Unload Me
End Sub