網路城邦
上一篇 回創作列表 下一篇   字體:
高興的跳過這個坎兒
2014/09/28 17:46:15瀏覽168|回應0|推薦4

 

假設我們打開使用的人事管理系統,自動出來一個界面(窗體),上面顯示了公司依照工號排序第一位員工的編號,姓名,性別,部門,職務,職稱,出生日期,履職時間,薪資總額,同時還有第一條,下一條,上一條,最末條(記錄)四個選擇按鈕,系統下面還會提示我們所選的資料(記錄)是整個人士管理系統總共幾條中的第幾條記錄,此外,還有一個退出系統的按鈕 -- 這是一個制式的軟體格式,在教科書上,我們稱之為“瀏覽記錄”。

我用的課本,老師教我們寫出如下的程式:


Dim myconnect As ADODB.Connection
Dim myres As ADODB.Recordset
Dim n As Integer, m As Integer


Public Sub 顯示信息(n)

   If myres.BOF = True And myres.EOF = True Then
      TextBox1.Value = ""
      TextBox2.Value = ""
      TextBox3.Value = ""
      TextBox4.Value = ""
      TextBox5.Value = ""
      TextBox6.Value = ""
      TextBox7.Value = ""
      TextBox8.Value = ""
      TextBox9.Value = ""
      Label10.Caption = "當前數據庫為空數據庫,沒有任何記錄!"
    Else
      TextBox1.Value = myres.Fields(0).Value
      TextBox2.Value = myres.Fields(1).Value
      TextBox3.Value = myres.Fields(2).Value
      TextBox4.Value = myres.Fields(3).Value
      TextBox5.Value = myres.Fields(4).Value
      TextBox6.Value = myres.Fields(5).Value
      TextBox7.Value = myres.Fields(6).Value
      TextBox8.Value = myres.Fields(7).Value
      TextBox9.Value = myres.Fields(8).Value
      Label10.Caption = "當前數據為第" & n & "條記錄" _
                        & "在數據庫中共有" & m & "條記錄"
    End If


End Sub

Private Sub CommandButton1_Click() '第一條信息
  If myres.BOF = True And myres.EOF = True Then
     Exit Sub
  Else
     n = 1
     myres.MoveFirst
     Call 顯示信息(n)
  End If
 
End Sub

Private Sub CommandButton2_Click() ' 下一條記錄
   If myres.EOF = True Then
      Exit Sub
   End If
  
   myres.MoveNext
   If myres.EOF = True Then
      Exit Sub
   End If
   n = n + 1
   Call 顯示記錄(n)
  
End Sub

Private Sub CommandButton3_Click() '下一條記錄
   If myres.BOF = True Then
      Exit Sub
   End If
  
   myres.MovePrevious
   n = n - 1
   If myres.BOF = True Then
      Exit Sub
   End If
   Call 顯示記錄(n)
End Sub


Private Sub CommandButton4_Click() '最後一條記錄
   If myres.BOF = True And myres.EOF = True Then
      Exit Sub
   Else
      n = m
      myres.MoveLast
      Call 顯示記錄(n)
   End If
End Sub

Private Sub CommandButton5_Click() '退出系統
 End
End Sub

 

Private Sub UserForm1_Initialize()
   Dim mydata As String, mytable As String
  mydata = "C:\Documents and Settings\maymay\My Documents\第三章數據庫.accdb"
  mytable = "資料表"
 
  Set myconnect = New ADODB.Connection
  myconnect.ConnectionString = "provider=microsoft.ACE.OLEDB.12.0;" _
                               & "data source =" & mydata
 
  myconnect.Open
 
 
  Set myres = New ADODB.Recordset
  myres.Open mytable, myconnect, adOpenKeyset, adLockOptimistic
  m = myres.RecordCount
 
  n = 1
  Call 顯示信息(n)
End Sub

 

然而最近三天運行失敗,老是報錯。


我檢查的方式如下:
1.檢查打字錯誤。
2.檢查掉落編程 -- 簡單的說,就是抄老師的代碼抄錯了
3.檢查印刷廠是否印錯了。這點,要看我自己的功力。就這麼幾個代碼,印刷廠寫錯兩個地方。  
4.運行還是報錯,我就把上一節學的知識拿出來運行,確定與數據庫連接成功。這時我將目標放在
  調用的子程式的代碼,在网上请教前辈,下载了一些前辈的笔记.


昨天晚上在下載的資料中看,一大堆知識點來埋著的,一句不顯眼的話:
“Dim myconnect As ADODB.Connection
Dim myres As ADODB.Recordset
Dim n As Integer, m As Integer”
這三個定義代碼,要放在 公共段 裡面。
晚上在床上,我想這句話想對的意思是:針對某個對象的代碼,必須放在這個對象的模塊中。由於大家都
睡了,我不好意思爬起來試,再說,也擔心不對的話,不知道又要試到啥時候,只好忍著。今天一起床,迫不及待的先翻開課本,將第一章第二節第三段VBA集成開發環境第四小段代碼窗口的使用重新讀一次,第一句就說中我的問題:
“代碼窗口是用來編寫,顯示及編輯VB代碼的窗口。打開各模塊的代碼窗口後,可以查看不同窗體或模塊的代碼。。。。。”,也就是說,每一個窗體要使用的代碼,必須寫在這個窗體的對象裡面。好比,我使用的窗體的名字是窗體1,因此,代碼必須放在窗體1的模塊之中,而不是我這三天來放在公共模塊。
依照這個想法,將代碼從公共模塊移到窗體1的模塊中,一試 -- OK啦

想我讀第一章的時候,讀是讀了,但總是覺得學得不扎實;雖然也曾要求自己仔細讀第二遍,可是,還是覺得不太懂,而且更糟糕的是,不知道不懂的地方在哪兒。,而此次在第三章絆住了,反而讓我讀懂了第一章第二節第三段第四小段的內容,心裡很踏實滿足。

再回頭看看網上的一些前輩,有些,真的學問扎實,理論實踐都很厲害;有的呢,就很虛浮,會做一些個別例子,但學習來自東抄西剽襲,而且不尊重理論。能快點做出一些作品,主要是接觸初步的理論,給自己信心,培養興趣,更鼓氣勁來學習理論的東西,否則只是本末倒置,根本無法精進。以前我們在大陸經營工廠的時候,電腦以及電腦操作人員是非常稀少的東西,遑論電腦室管理人才,而一些懂一些皮毛的年輕人在電腦室裡面摸摸,說一些非電腦室人員不懂的專業名詞就覺得自己很了不起,不再精進,反而喜歡走旁門左道學一些花俏的小程式,而不是在廣泛的電腦知識裡面學習正統的知識。我對這樣的人很不放心,所以呢,我買了大學應用電腦系的教材,自己在家裡讀,也在書店買相關的書籍讀書,不懂的地方,就請教電腦室的員工,同時也鼓勵他們要精益求精。總之,我對電腦室管理人員的態度 -- 專業學習態度,管理態度,責任態度等非常在意與留意,也正因為如此不放心,我才會學習電腦也才有一些基本知識。這麼多年過去了,那些態度不嚴謹的年輕人,還是只能處理底層的工作,好比清理電腦,整理網線,了不起一點就是佈置局域網配置,測試網路連接,真的是浪費自己的青春啊!

嗯,我好像很愛批評人家??好,以後跨過一個坎兒,就獎賞自己一次批評人家的機會。(誰理你 哈哈,開玩笑的啦。)

 

 

 

 

( 知識學習科學百科 )
回應 推薦文章 列印 加入我的文摘
上一篇 回創作列表 下一篇

引用
引用網址:https://classic-blog.udn.com/article/trackback.jsp?uid=bonjour2007002&aid=17666556