学生信息管理系统-代码理解篇

来源:互联网 发布:c语言 true false 编辑:程序博客网 时间:2024/05/21 00:19

一. 模块

1.数据库连接

Connectstring="provider=sqloledb;server=192.168.26.25;UID=sa;PWD=123;filedsn=studentinfo.dsn"



数据库连接的两种方法:

http://blog.csdn.net/wang379275614/article/details/7859398

2.split()函数

Split()函数是一个操作字符串的函数,可以返回一个下标从零开始,指定子字符串的一维数组。    语法为:Split(expression[, delimiter[, count[, compare]]])

     expression 必需的。包含子字符串和分隔符的字符串表达式。如果expression是一个长度为零的字符串(""),Split则返回一个空数组,即没有元素和数据的数组。

     delimiter 可选的。用于标识子字符串边界的字符串字符。如果忽略,则使用空格字符(" ")作为分隔符。如果delimiter是一个长度为零的字符串,则返回的数组仅包含一个元素,即完整的 expression字符串。

     count 可选的。要返回的子字符串数,–1表示返回所有的子字符串。

     compare 可选的。数字值,表示判别子字符串时使用的比较方式。关于其值,请参阅“设置值”部分。

 

在这里,delimiter默认为空格字符,如果SQL语句是“SELECT*FROM……”则返回sTokens(0)=SELECT;sTokens(1)=*;sTokens(2)=FROM

二.窗体

1登录窗体

(1).Getusername

随着系统安全性的加强,每个系统里越来越多不同的帐号登录。假如你正在开发一个上网安全软件,让不同的用户有不同的上网权限,这样就需要识别当前的用户是什么帐号登录了,然后再作出权限分配。还有出错时,也需要对当前帐号进行记录下来,因为不同的帐号有不同的权限,有些磁盘是不允许操作的。面对这些需求,就需要使用函数GetUserName。

GetUserName概述

声明

VB声明  

Declare  Function  GetUserName   Lib  "advapi32.dll "  Alias   "GetUserNameA "  (ByVal  lpBuffer   As   String,  nSize  As   Long)  As   Long


定义

GetUserName(

lpBuffer:PChar; {缓冲区}

var nSize:DWORD {缓冲区大小}

参数表

参数         类型及说明  

lpBuffer  String,一个字串缓冲区,预先初始化成由nSize指定的长度。它将用于容纳用户名,是获取名称缓冲区。 

nSize      Long,初始化成lpBuffer的长度。返回以后,它会包含载入lpBuffer的字符数量  ,是缓冲区的大小和返回帐号的大小。

注解

 

1、lpBuffer和nSize需要赋初值。

2、库名:advapi32.dll

3、分类:硬件与系统函数

4、Long,TRUE(非零)表示成功,否则返回零。会设置GetLastErrorlpBuffer(String),一个字串缓冲区,预先初始化成由nSize指定的长度。它将用于容纳用户名

nSize   Long,初始化成lpBuffer的长度。返回以后,它会包含载入lpBuffer的字符数量

(2).Set mrc = ExecuteSQL(txtSQL, MsgText)

是自定义函数

ExecuteSQL 一定是执行SQL语句(英文的意思是这样的-一般按照用途定义名字的)

 

里面的两个参数 txtSQL 是指用来执行的SQL语句比如:select * from 表

MsgText参数 指的是实行完SQL语句后的弹出框 是成功了还是失败了之类的

 

2.父窗体-frmMain

 
 Me.Left = GetSetting(App.Title, "Settings","MainLeft", 1000)

Function GetSetting(AppName As String,Section As String, Key As String, [Default]) As String

   VBA.Interaction 的成员

    从 Windows 注册表的应用程序项中返回一个关键字设置值。

app.title 工程名

settings 字符串表达式,包含区域名称,要求该区域有注册表项设置。

mainleft 字符串表达式,返回注册表项设置的名称。

default 默认值

2.子窗体

(1).添加窗体

机制:先删除,再添加

代码理解:

If Not (mrc.EOF And mrc.BOF) Then                  '数据库中不为空       mrc.MoveFirstEnd If


 

Mrc!相当于数据库

While (mrc.EOF = False)        comboSID.AddItem mrc!student_ID        mrc.MoveNext Wend


(2). 修改窗体

Private SubcmdDelete_Click()    myBookmark = mrc.Bookmark    str2$ = MsgBox("是否删除当前记录?", vbOKCancel, "删除当前记录")    If str2$ = vbOK Then           '$变长字符型            mrc.MoveNext            '用movenext先测试是否要删除的记录为最后一条记录,            If mrc.EOF Then           '如果为最后,则先把当前记录移动到第一个                 mrc.MoveFirst                       '然后将书签移动到第一个                myBookmark = mrc.Bookmark         '找到刚才标记的书签                mrc.MoveLast                       '然后在移动到最后                mrc.Delete                             '删除                 mrc.Bookmark = myBookmark         '找回刚才标记的书签    '                Call viewData            Else                myBookmark = mrc.Bookmark                Call viewData                        '显示记录            End If    Else        mrc.Bookmark = myBookmark        Call viewData    End IfEnd Sub


bookmark是标当前dbgrid的位置,这里的作用就是当点删除时,先记录下当前dbgrid的位置,如果确定删除,判断是不是到最后了,如果是就回到第一行,删除,位置留在第一行,如果不是最后则删除数据后保持bookmar在当前位置;如果没有执行删除,则bookmark也保持在当前位置不变

mrc是一个有指针(bookmark属性存储),动作(movefirst、delete等)的模块,通过这个自定义的模块控制和存储bookmark实现的功能。

简单说就是记录游标的位置

 

mcclean为false时,处于编辑状态

(3)查询窗体:

cellalignment是单元格的对齐方式

 textmatrix(row,col)可以返回第row行,第col列的数据

 

原创粉丝点击