家庭财务管理系统课程设计的原代码
- 格式:doc
- 大小:197.50 KB
- 文档页数:48
1、frm_borrowgo.frmDim Mydb As New ADODB.RecordsetDim Mydb1 As New ADODB.RecordsetDim Str_text As StringDim strflag As StringPrivate Sub cmd_add_Click()txt_man。
Locked = Falsetxt_way。
Locked = Falsetxt_money。
Locked = FalseCombo1。
Locked = FalseCheck1.Enabled = TrueDTPicker1。
Enabled = Truetxt_man。
Text = ”"txt_way。
Text = ””txt_money。
Text = ”"Combo1.Text = "”strflag = "添加”Cmdsave。
Enabled = TrueEnd SubPrivate Sub cmd_close_Click()Unload MeEnd SubPrivate Sub cmd_del_Click()Dim A As BooleanA = MsgBox("是否真的要删除这条记录?", vbOKCancel + 32 + 256, "删除")If A = True ThenExeCutesql "delete from 借出where 得款人=’”&txt_man。
Text & ”’", Str_textMsgBox ”记录已删除!”,, "删除"If Mydb。
RecordCount 〉0 ThenMydb.MoveNextIf Mydb.EOF Then Mydb.MoveLastCall DbCall BangdingLabel7.Caption = Mydb。
附程序源代码:program xmjl;usesForms,windows,main in 'main.pas' {Form1},dm in 'dm.pas' {dm2: TDataModule},about in 'about.pas' {AboutBox},report in 'report.pas' {qr1: TQuickRep},logosrc in 'logosrc.pas' {logo},login in 'login.pas' {denglu};{$R *.res}beginApplication.Initialize;logo:=tlogo.Create(application);logo.Show;logo.Update;Application.CreateForm(Tdm2, dm2);Application.CreateForm(Tdenglu, denglu);sleep(1000);logo.Hide;logo.Free;Application.Run;end.unit logosrc;interfaceusesWindows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, jpeg, ExtCtrls;typeTlogo = class(TForm)Image1: TImage;private{ Private declarations }public{ Public declarations }end;varlogo: Tlogo;implementation{$R *.dfm}end.unit login;interfaceusesWindows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Mask, Buttons;typeTdenglu = class(TForm)BitBtn1: TBitBtn;BitBtn2: TBitBtn;ComboBox1: TComboBox;MaskEdit1: TMaskEdit;Label1: TLabel;Label2: TLabel;procedure BitBtn2Click(Sender: TObject);procedure FormCreate(Sender: TObject);procedure BitBtn1Click(Sender: TObject);private{ Private declarations }public{ Public declarations }end;vardenglu: Tdenglu;implementationuses dm,main;{$R *.dfm}procedure Tdenglu.BitBtn2Click(Sender: TObject); beginapplication.Terminate;end;procedure Tdenglu.FormCreate(Sender: TObject); beginwith dm2.ADOTable1 dobeginopen;first;while not eof dobegincombobox1.Items.Add(fields[0].Value );next;end;combobox1.ItemIndex :=0;end;end;procedure Tdenglu.BitBtn1Click(Sender: TObject); beginwith dm2.ADOTable1 dobeginif locate('us',combobox1.Text,[]) thenbeginif maskedit1.text=fields[1].Value thenbeginhide;with tform1.Create(self) doshowmodal;end;application.Terminate ;end;end;end;end.unit main;interfaceusesWindows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ComCtrls, ToolWin, Menus, DBActns, ActnList, DB,ExtCtrls, StdCtrls, Mask, DBCtrls, ImgList, Buttons, Grids, DBGrids;typeTForm1 = class(TForm)PageControl1: TPageControl;StatusBar1: TStatusBar;TabSheet1: TTabSheet;TabSheet2: TTabSheet;TabSheet3: TTabSheet;TabSheet5: TTabSheet;MainMenu1: TMainMenu;N1: TMenuItem;N2: TMenuItem;N4: TMenuItem;N5: TMenuItem;N8: TMenuItem;N9: TMenuItem;N10: TMenuItem;N12: TMenuItem;N13: TMenuItem;N14: TMenuItem;N15: TMenuItem;N16: TMenuItem;N17: TMenuItem;N18: TMenuItem;DataSource1: TDataSource;ActionList1: TActionList;DataSetFirst1: TDataSetFirst;DataSetPrior1: TDataSetPrior;DataSetNext1: TDataSetNext;DataSetLast1: TDataSetLast;DataSetInsert1: TDataSetInsert;DataSetDelete1: TDataSetDelete;DataSetEdit1: TDataSetEdit;DataSetPost1: TDataSetPost;Panel1: TPanel;Panel2: TPanel;Label1: TLabel;Label2: TLabel;Label3: TLabel;Label4: TLabel;DBEdit1: TDBEdit; DBEdit2: TDBEdit; DBEdit9: TDBEdit; DBEdit10: TDBEdit; DBEdit11: TDBEdit; Panel3: TPanel;BitBtn1: TBitBtn;BitBtn2: TBitBtn;BitBtn3: TBitBtn;BitBtn4: TBitBtn; ImageList1: TImageList; BitBtn5: TBitBtn;BitBtn10: TBitBtn;Label25: TLabel;Label26: TLabel;Panel4: TPanel;BitBtn6: TBitBtn;BitBtn7: TBitBtn;BitBtn8: TBitBtn;BitBtn9: TBitBtn;BitBtn11: TBitBtn;BitBtn12: TBitBtn;BitBtn13: TBitBtn;Panel8: TPanel;DBGrid1: TDBGrid; Panel9: TPanel;Label27: TLabel; ComboBox1: TComboBox; Label28: TLabel;Edit1: TEdit;BitBtn14: TBitBtn;BitBtn15: TBitBtn;Panel13: TPanel;DBGrid3: TDBGrid; Panel14: TPanel;Label59: TLabel;Label60: TLabel; ComboBox3: TComboBox; Edit3: TEdit;BitBtn18: TBitBtn;BitBtn19: TBitBtn;BitBtn21: TBitBtn;Timer1: TTimer;DBEdit3: TDBEdit;Panel5: TPanel;Label7: TLabel;Label8: TLabel;Label9: TLabel;Label10: TLabel;Label11: TLabel;Label12: TLabel;Label13: TLabel;Label14: TLabel;DBEdit4: TDBEdit;DBEdit5: TDBEdit;DBEdit6: TDBEdit;DBEdit7: TDBEdit;DBEdit8: TDBEdit;DBEdit12: TDBEdit;TabSheet4: TTabSheet;Panel6: TPanel;GroupBox1: TGroupBox;SpeedButton1: TSpeedButton;DBGrid2: TDBGrid;DBEdit13: TDBEdit;DBEdit14: TDBEdit;DBNavigator1: TDBNavigator;Label15: TLabel;Label16: TLabel;DataSource2: TDataSource;procedure N9Click(Sender: TObject);procedure N10Click(Sender: TObject);procedure N12Click(Sender: TObject);procedure N8Click(Sender: TObject);procedure N14Click(Sender: TObject);procedure N5Click(Sender: TObject);procedure BitBtn5MouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);procedure filldata(sender:tcombobox);procedure search(f1:tcombobox;t1:tedit);procedure dispall;procedure FormActivate(Sender: TObject);procedure BitBtn14Click(Sender: TObject);procedure BitBtn15Click(Sender: TObject);procedure BitBtn13Click(Sender: TObject);procedure BitBtn21Click(Sender: TObject);procedure Timer1Timer(Sender: TObject);procedure BitBtn11MouseUp(Sender: TObject; Button: TMouseButton;Shift: TShiftState; X, Y: Integer);procedure BitBtn18Click(Sender: TObject);procedure SpeedButton1Click(Sender: TObject);private{ Private declarations }public{ Public declarations }end;varForm1: TForm1;implementationuses about,dm,report,login;{$R *.dfm}procedure TForm1.N9Click(Sender: TObject);begintabsheet2.Show;end;procedure TForm1.N10Click(Sender: TObject);begintabsheet3.Show;end;procedure TForm1.N12Click(Sender: TObject);begintabsheet5.Show;end;procedure TForm1.N8Click(Sender: TObject);begintabsheet1.Show;end;procedure TForm1.N14Click(Sender: TObject);beginapplication.Terminate ;end;beginwith taboutbox.Create(self) doShowModal ;end;procedure TForm1.BitBtn5MouseUp(Sender: TObject; Button: TMouseButton;Shift: TShiftState; X, Y: Integer);begindbedit1.Text:=inttostr(dm2.adoquery1.RecordCount+1);dbedit2.SetFocus;end;procedure TForm1.filldata(sender:tcombobox);variCount: Integer; //将从数据模块中取得的数据库表的字段名填入ComboBox中beginsender.Items.Clear; //首先清空ComboBox中Items的值for iCount := 0 to DM2.ADOQuery1.Fields.Count - 2 dobeginsender.Items.Add(DM2.ADOQuery1.Fields[iCount].FieldName); //加入字段名DM2.ADOQuery1.Next; //向下移动到下一个字段end;sender.ItemIndex := 0; //设置表单刚出现时ComboBox的值为第一个end;procedure TForm1.search(f1:tcombobox;t1:tedit); //自定义过程search(在数据库中搜寻指定条件的数据)varSearchField: string; //要查找的字段名SearchValue: string; //要查找的字段值beginSearchField := Trim(f1.Text); //将ComboBox的值赋给SearchField SearchValue := '%' + Trim(t1.Text) + '%'; //将Edit的值赋给SearchFieldwith DM2.ADOQuery1 dobeginclose; //先关闭数据模块中的ADOQuerysql.Clear; //清空ADOQuery中的SQL值sql.Add('select * from xmb where ' + SearchField + ' like ''' +SearchV alue + ''''); //进行数据查询的SQL语句(SearchFidel和SearchValue// 分别赋到SQL语句中end;Dm2.ADOQuery1.Open; //打开数据模块中的ADOQueryend;procedure TForm1.FormActivate(Sender: TObject);beginfilldata(combobox1);filldata(combobox3);tabsheet1.Show;end;procedure TForm1.BitBtn14Click(Sender: TObject);beginsearch(combobox1,edit1);end;procedure TForm1.BitBtn15Click(Sender: TObject);begindispall;end;procedure TForm1.dispall;beginwith dm2.ADOQuery1 dobeginclose;sql.clear;sql.Add('select * from xmb');open;end;end;procedure TForm1.BitBtn13Click(Sender: TObject);beginif MessageDlg('你确信要删除记录?',mtwarning,[mbok,mbcancel],0)=mrok thenDM2.ADOQuery1.Delete;end;procedure TForm1.BitBtn17Click(Sender: TObject);begindispall;end;procedure TForm1.BitBtn21Click(Sender: TObject);beginwith tqr1.Create(self) doPreview;end;procedure TForm1.Timer1Timer(Sender: TObject);beginstatusbar1.Panels[3].Text :=timetostr(now);statusbar1.Panels[4].Text :=formatdatetime('yyyy年MM月dd日',now); end;procedure TForm1.BitBtn11MouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);begindbedit12.SetFocus;end;procedure TForm1.BitBtn18Click(Sender: TObject);beginsearch(combobox3,edit3);end;procedure TForm1.SpeedButton1Click(Sender: TObject);beginwith dm2.ADOQuery1 dobeginclose;sql.Clear;sql.Add('delete * from xmb');ExecSQL;close;sql.Clear;sql.Add('select * from xmb');open;end;end;end.unit dm;interfaceusesSysUtils, Classes, ADODB, DB;typeTdm2 = class(TDataModule)ADOConnection1: TADOConnection;ADOQuery1: TADOQuery;ADOQuery1DSDesigner: TWideStringField;ADOQuery1DSDesigner2: TBCDField;ADOQuery1DSDesigner3: TBCDField;ADOQuery1DSDesigner4: TDateTimeField;ADOQuery1DSDesigner5: TWideStringField;ADOQuery1total: TCurrencyField;ADOTable1: TADOTable;procedure ADOQuery1CalcFields(DataSet: TDataSet); private{ Private declarations }public{ Public declarations }end;vardm2: Tdm2;implementation{$R *.dfm}procedure Tdm2.ADOQuery1CalcFields(DataSet: TDataSet); beginadoquery1total.Value :=ADOQuery1DSDesigner2.V alue -ADOQuery1DSDesigner3.value ; end;end.unit report;interfaceuses Windows, SysUtils, Messages, Classes, Graphics, Controls, StdCtrls, ExtCtrls, Forms, QuickRpt, QRCtrls, DB, ADODB;Tqr1 = class(TQuickRep)ColumnHeaderBand1: TQRBand;TitleBand1: TQRBand;QRLabel1: TQRLabel;DetailBand1: TQRBand;QRLabel2: TQRLabel;QRLabel3: TQRLabel;QRLabel4: TQRLabel;QRLabel5: TQRLabel;QRLabel6: TQRLabel;QRLabel7: TQRLabel;QRDBText1: TQRDBText;QRDBText2: TQRDBText;QRDBText3: TQRDBText;QRDBText4: TQRDBText;QRDBText5: TQRDBText;QRDBText6: TQRDBText;QRShape1: TQRShape;QRShape2: TQRShape;QRShape3: TQRShape;QRShape7: TQRShape;QRShape8: TQRShape;QRShape9: TQRShape;SummaryBand1: TQRBand;QRSysData1: TQRSysData;QRLabel8: TQRLabel;QRLabel9: TQRLabel;QRSysData2: TQRSysData;QRLabel10: TQRLabel;QRSysData3: TQRSysData; privatepublicend;varqr1: Tqr1;implementationuses dm;{$R *.DFM}unit about;interfaceuses Windows, SysUtils, Classes, Graphics, Forms, Controls, StdCtrls, Buttons, ExtCtrls;typeTAboutBox = class(TForm)Panel1: TPanel;ProgramIcon: TImage;ProductName: TLabel;V ersion: TLabel;Copyright: TLabel;Comments: TLabel;OKButton: TButton;private{ Private declarations }public{ Public declarations }end;varAboutBox: TAboutBox;implementation{$R *.dfm}end.。
课程设计报告课程设计题目:家庭财务管理系统学生姓名:专业: 信息工程班级:指导教师:2018年1月8日1.需求分析根据家庭账务管理的需要,建立一个“家庭账务管理系统”,以方便对家庭日常收入及支出进行记录和管理。
该系统要求:①家庭月收入管理②家庭月支出管理③统计家庭总收入/总支出④系统提供收入/支出的添加、删除和修改功能。
2. 总体设计根据以上分析,本家庭账务管理系统主要包括:①从键盘键入家庭月收入、月支出数据;②查询月收入、月支出明细;③删除收入、支出数据;④修改收入、支出数据;⑤统计总收入/总支出;⑥退出系统。
除main()函数之外,系统还定义了以下函数来实现各部分内容:①add_income():添加收入数据函数。
②add_payout():添加支出数据函数。
③search_data():查找数据函数。
④initialize():初始化函数,读取文本数据。
⑤show_info():显示数据函数。
⑥count_total():统计函数,统计总收入、总支出。
⑦update_data():修改信息函数。
⑧delete_data():删除数据函数。
⑨quit():退出函数。
程序结构功能图如下:3.详细设计3.1收入管理3.2支出管理4.测试结果4.1 程序运行主菜单4.2 添加收入测试4.3 查询收入明细测试4.4 删除收入测试4.5 修改收入测试4.6 添加支出测试4.7 查询支出明细测试4.8 删除支出测试4.9 修改支出测试4.10 统计总收入/支出测试4.11 退出系统测试5.软件操作使用说明书本系统采用命令行对话方式进行操作,运行后出现主界面(如下图所示),然后按照主界面菜单指引操作即可。
6.总结编写程序之前要有一个整体的思路,不能写到哪里算哪里。
这样很容易遗漏,连续性也不好。
通过本次的课程设计让我对于数组、文件的存放、循环结构等知识有了更加透彻的理解。
希望在以后的课程设计中对于知识的运用能够更加的熟练。
程序设计报告( 2015 / 2016 学年第二学期)题目:家庭支出管理系统专业微电子科学与工程组长学号姓名组员学号姓名指导教师许棣华指导单位日期2016年 6 月3日家庭支出管理系统一、课题内容和要求1、该系统要求对一个家庭某月的支出情况进行统计和分析。
通过此课题,熟练掌握数组、指针的各种操作,以及一些算法思想的应用。
2、功能要求:(1)支出信息包括:支出类型(主要可以分为饮食,服饰装扮,礼金,教育培训,电器,健身,通讯,子女培养,旅游,文化娱乐,医疗,交通,聚会,居住等小项),金额,消费地点,消费时间等。
(2)需要实现的功能:1)用户根据口令进入系统2)输入某一月份,完成该月份的支出管理3)输入并统计该月的支出情况4)显示该月支出信息表,内容应包括日期,金额等5)按支出类型进行分类统计和排序6)进行本月消费分析,即分析每项支出所占总支出的百分比,并显示分析结果7)显示按支出类型排序后的支出信息8)将排序后的内容存为文件。
(3)界面友好,输入信息符合逻辑如存款金额不为负数、不可能有非数字的字符等。
二、需求分析家庭支出管理系统的功能框架图如图1所示。
图1 功能框架图(1)功能选择函数:此函数是为了让用户根据主界面选择功能并根据提示来进行操作。
(2)输入函数:为了实现将各个支出项目的类别,支出的金额以及消费的时间,地点等存入需要的文件里,所以必须先要存在存储器里。
(3)输出函数:即通过行列表来直观对应存储文件中的项目的类别,金额,消费时间及地点。
(4)分析函数:读取本月的存储文档中的信息,对本月的消费进行分析,求出本月的消费总和,分析出每项支出所占总支出的百分比,通过他们各自的项目金额所占的百分比来直观显示那个指出比较重要。
随后与本月收入进行比较,求出收支比。
(5)类别排序函数:就是将输入的信息进行按类别排序。
(6)保存函数:将本次添加的信息进行保存到相应月份的支出信息文档中。
(7)登录界面:因为家庭支出管理系统涉及到私人财务,所以需要利用密码函数对程序进行保密。
附录1家庭财务评估系统源代码指导教师:王金凤组员:刘杰王剑锋张恒琳✓应用程序入口XAML:<Application x:Class="Finance.App"xmlns="/winfx/2006/xaml/presentation"xmlns:x="/winfx/2006/xaml"StartupUri="Login.xaml"ShutdownMode="OnLastWindowClose"><!--StartupUri="Login.xaml"--><Application.Resources><ResourceDictionary><ResourceDictionary.MergedDictionaries><ResourceDictionary Source="/Resource/Stylesource.xaml"/></ResourceDictionary.MergedDictionaries></ResourceDictionary></Application.Resources></Application>✓资源文件代码[Stylesource.xaml]<ResourceDictionary xmlns="/winfx/2006/xaml/presentation" xmlns:x="/winfx/2006/xaml"><Style x:Key="L_tstyle"><!--登录窗口文本框的样式--><Setter Property="Control.BorderBrush" Value="LightGray"/><Setter Property="Control.BorderThickness" Value="1"/><Style.Triggers><Trigger Property="Control.IsMouseOver" Value="True"><Setter Property="Control.BorderBrush" Value="LightBlue"/><Setter Property="Control.BorderThickness" Value="2"/></Trigger><Trigger Property="Control.IsFocused" Value="True"><Setter Property="Control.BorderBrush" Value="LightGray"/><Setter Property="Control.BorderThickness" Value="1.1"/></Trigger></Style.Triggers></Style><Style x:Key="R_tstyle" TargetType="PasswordBox"><!--注册窗口文本框的样式--><Setter Property="Control.BorderBrush" Value="LightBlue"/><Setter Property="Control.BorderThickness" Value="1.1"/><Style.Triggers><Trigger Property="Control.IsFocused" Value="True"><Setter Property="Control.BorderBrush" Value="LightGray"/><Setter Property="Control.BorderThickness" Value="1.1"/></Trigger><Trigger Property="Control.IsMouseOver" Value="true"><Setter Property="Control.BorderBrush" Value="LightGray"/><Setter Property="Control.BorderThickness" Value="1.1"/></Trigger></Style.Triggers></Style><Style x:Key="contentCenterStyle" TargetType="{x:Type TextBlock}"> <Setter Property="HorizontalAlignment" Value="Center" /><Setter Property="VerticalAlignment" Value="Center"/></Style><Style TargetType="DataGridCell"><Setter Property="FocusVisualStyle" Value="{x:Null}"/><Style.Triggers><Trigger Property="IsSelected" Value="True"><Setter Property="BorderThickness" Value="1"/><Setter Property="BorderBrush" Value="White"/><Setter Property="Foreground" Value="Black"/><Setter Property="TextBlock.FontSize" Value="20"/><Setter Property="Background" Value="AliceBlue"/></Trigger><Trigger Property="IsMouseOver" Value="true"><Setter Property="TextBlock.FontSize" Value="20"/><Setter Property="Background" Value="White"/><Setter Property="Foreground" Value="LightGray"/></Trigger></Style.Triggers></Style></ResourceDictionary>注册界面UI-Xaml:<Windowx:Class="Finance.Regedit"xmlns="/winfx/2006/xaml/presentation" xmlns:x="/winfx/2006/xaml"Title="ConchNotes注册"Height="522"Width="849"WindowStyle="SingleBorderWindow"Background="LightGray"Name="frmRegedit"WindowStartupLocation="CenterScreen"ResizeMode="NoResize"Closed="frmRegedit_Closed"Icon="/Finance;component/Images/doit.ico"xmlns:local="clr-namespace:Finance.Codes" Loaded="frmRegedit_Loaded"> <Window.Resources><Style TargetType="TextBox"><Setter Property="Control.BorderThickness" Value="1.1" /><Setter Property="Control.BorderBrush" Value="LightBlue"/><Style.Triggers><Trigger Property="IsMouseOver" Value="true"><Setter Property="Control.BorderBrush" Value="LightGray"/><Setter Property="Control.BorderThickness" Value="1.1" /></Trigger></Style.Triggers></Style><Style TargetType ="Hyperlink" ><Setter Property="TextBlock.TextDecorations" Value="{x:Null}"/><Style.Triggers><Trigger Property ="IsMouseOver" Value ="True" ><Setter Property ="Foreground" Value ="Red" /><!-- 在鼠标悬停时显示下划线--><Setter Property ="TextBlock.TextDecorations" Value="{x:Null}" /></Trigger></Style.Triggers></Style></Window.Resources><Grid><Grid.RowDefinitions><RowDefinition Height="400"/><RowDefinition Height="83*" /></Grid.RowDefinitions><Border BorderBrush="White" BorderThickness="1" Name="border1" Background="White" CornerRadius="10" Margin="20,10,20,0"><Grid><Grid.ColumnDefinitions><ColumnDefinition Width="366"/><ColumnDefinition Width="419*" /></Grid.ColumnDefinitions><StackPanel Grid.Column="0" Grid.Row="0"><TextBlock Text="您很快就拥有完美的理财能力!" FontSize="17" Margin="15,30,15,20" FontFamily="黑体"/><TextBlock TextWrapping="Wrap" Margin="15,0,0,0" FontFamily="宋体" FontSize="14"Foreground="#FF6F6C6C">"财智"它辅助你设置预算,控制乱消费,在线理财你可以更方便的去发现自己的财务漏洞。
#include <stdio.h>#include <stdlib.h>#include <string.h>struct Data{char name[20];char riqi[8];float money;char beizhu[50];};struct list{struct Data info;struct list *next;};struct list *Inhead=NULL;struct list *Intail=NULL;struct list *zhichuhead=NULL;struct list *zhichutail=NULL;struct list *temp=NULL;void chaxun_income();void chaxun_zhichu();void xiugai_income();void xiugai_zhichu();void Save_income(){FILE *fp;fp=fopen("D:\家庭财务管理.txt","w");struct list *p = Inhead;while(p != NULL){fwrite(&p->info, sizeof(struct Data), 1, fp);p = p->next;}fclose(fp);}void Save_zhichu(){FILE *fp;fp=fopen("D:\家庭财务管理支出.txt","w");struct list *p = zhichuhead;while(p != NULL){fwrite(&p->info, sizeof(struct Data), 1, fp);p = p->next;}fclose(fp);}void Open(){FILE *fp;fp=fopen("D:\家庭财务管理.txt","r");if(fp!=NULL){struct Data linshi;while(fread(&linshi, sizeof(struct Data), 1, fp) == 1){temp=(struct list*)malloc(sizeof(struct list));temp->info=linshi;temp->next=NULL;if(Inhead == NULL){Inhead = temp;Intail = temp;}else{Intail->next = temp;Intail = temp;}}fclose(fp);}}void Menu(){ system("cls");printf("\n");printf("\n");printf("\n");printf("\n");printf("******************\n");printf("欢迎使用家庭财务管理系统\n");printf("******************\n");printf(" \n");printf(" 1:收入操作\n");printf(" 2:支出操作\n");printf(" 3:统计操作\n");printf(" 0:退出\n");}void Openzhichu(){FILE *fp;fp=fopen("D:\家庭财务管理支出.txt","r");if(fp!=NULL){struct Data linshi;while(fread(&linshi, sizeof(struct Data), 1, fp) == 1){temp=(struct list*)malloc(sizeof(struct list));temp->info=linshi;temp->next=NULL;if(zhichuhead == NULL){zhichuhead = temp;zhichutail = temp;}else{zhichutail->next = temp;zhichutail = temp;}}fclose(fp);}}void mingzi (){char chazhao[20];printf("请输入查询的名字");gets(chazhao);struct list *p = Inhead;while(p != NULL){if(strcmp(p->,chazhao)==0){printf("姓名:");puts(p->);printf("日期:");puts(p->info.riqi);printf("收入:");printf("%.4f\n",p->info.money);printf("备注:");puts(p->info.beizhu);system("PAUSE");}p = p->next;}if(Inhead!=NULL){char panduan;printf("是否继续查询(Y/N)");panduan=getchar();fflush(stdin);if(panduan=='Y'||panduan=='y'){chaxun_income();}}}void mingzi_zhichu (){char chazhao[20];printf("请输入查询的名字");gets(chazhao);struct list *p = zhichuhead;while(p != NULL){if(strcmp(p->,chazhao)==0){printf("姓名:");puts(p->);printf("日期:");puts(p->info.riqi);printf("收入:");printf("%.4f\n",p->info.money);printf("备注:");puts(p->info.beizhu);system("PAUSE");}p = p->next;}if(zhichuhead!=NULL){char panduan;printf("是否继续查询(Y/N)");panduan=getchar();fflush(stdin);if(panduan=='Y'||panduan=='y'){chaxun_zhichu();}}}void mingzi_xiugai_income(){char xiugai[20];printf("请输入修改的名字");fflush(stdin);gets(xiugai);struct list *p = Inhead;while(p != NULL){if(strcmp(p->,xiugai)==0){fflush(stdin);printf("姓名:");gets(p->);fflush(stdin);printf("日期:");gets(p->info.riqi);fflush(stdin);printf("支出: ");scanf("%f",&p->info.money);fflush(stdin);printf("备注:");gets(p->info.beizhu);fflush(stdin);//------}p = p->next;}Save_income();if(Inhead!=NULL){char panduan;printf("是否继续修改(Y/N)");panduan=getchar();fflush(stdin);if(panduan=='Y'||panduan=='y'){xiugai_income();}}}void mingzi_xiugai_zhichu(){char xiugai[20];printf("请输入修改的名字");fflush(stdin);gets(xiugai);struct list *p = zhichuhead;while(p != NULL){if(strcmp(p->,xiugai)==0){fflush(stdin);printf("姓名:");gets(p->);fflush(stdin);printf("日期:");gets(p->info.riqi);fflush(stdin);printf("支出: ");scanf("%f",&p->info.money);fflush(stdin);printf("备注:");gets(p->info.beizhu);fflush(stdin);//------}p = p->next;}Save_zhichu();if(zhichuhead!=NULL){char panduan;printf("是否继续修改(Y/N)");panduan=getchar();fflush(stdin);if(panduan=='Y'||panduan=='y'){xiugai_zhichu();}}}void riqi(){char chazhao[20];printf("请输入查询的日期");gets(chazhao);struct list *p = Inhead;while(p != NULL){if(strcmp(p->info.riqi,chazhao)==0){printf("姓名:");puts(p->);printf("日期:");puts(p->info.riqi);printf("收入:");printf("%.4f\n",p->info.money);printf("备注:");puts(p->info.beizhu);system("PAUSE");}p = p->next;}if(Inhead!=NULL){char panduan;printf("是否继续查询(Y/N)");panduan=getchar();fflush(stdin);if(panduan=='Y'||panduan=='y'){chaxun_income();}}}void riqi_zhichu(){char chazhao[20];printf("请输入查询的日期");gets(chazhao);struct list *p = zhichuhead;while(p != NULL){if(strcmp(p->info.riqi,chazhao)==0){printf("姓名:");puts(p->);printf("日期:");puts(p->info.riqi);printf("收入:");printf("%.4f\n",p->info.money);printf("备注:");puts(p->info.beizhu);system("PAUSE");}p = p->next;}if(zhichuhead!=NULL){char panduan;printf("是否继续查询(Y/N)");panduan=getchar();fflush(stdin);if(panduan=='Y'||panduan=='y'){chaxun_zhichu();}}}void riqi_xiugai_income(){char xiugai[20];printf("请输入修改的日期");fflush(stdin);gets(xiugai);struct list *p = Inhead;while(p != NULL){if(strcmp(p->info.riqi,xiugai)==0){fflush(stdin);printf("姓名:");gets(p->);fflush(stdin);printf("日期:");gets(p->info.riqi);fflush(stdin);printf("支出: ");scanf("%f",&p->info.money);fflush(stdin);printf("备注:");gets(p->info.beizhu);fflush(stdin);//------}p = p->next;}Save_income();if(Inhead!=NULL){char panduan;printf("是否继续修改(Y/N)");panduan=getchar();fflush(stdin);if(panduan=='Y'||panduan=='y'){xiugai_income();}}}void riqi_xiugai_zhichu(){char xiugai[20];printf("请输入修改的日期");fflush(stdin);gets(xiugai);struct list *p = zhichuhead;while(p != NULL){if(strcmp(p->info.riqi,xiugai)==0){fflush(stdin);printf("姓名:");gets(p->);fflush(stdin);printf("日期:");gets(p->info.riqi);fflush(stdin);printf("支出: ");scanf("%f",&p->info.money);fflush(stdin);printf("备注:");gets(p->info.beizhu);fflush(stdin);//------}p = p->next;}Save_zhichu();if(zhichuhead!=NULL){char panduan;printf("是否继续修改(Y/N)");panduan=getchar();fflush(stdin);if(panduan=='Y'||panduan=='y'){xiugai_zhichu();}}}void money (){float chazhao;printf("请输入查询的money");scanf("%f",&chazhao);fflush(stdin);struct list *p = Inhead;while(p != NULL){if(p->info.money==chazhao){printf("姓名:");puts(p->);printf("日期:");puts(p->info.riqi);printf("收入:");printf("%.4f\n",p->info.money);printf("备注:");puts(p->info.beizhu);system("PAUSE");}p = p->next;}if(Inhead!=NULL){char panduan;printf("是否继续查询(Y/N)");panduan=getchar();fflush(stdin);if(panduan=='Y'||panduan=='y'){chaxun_income();}}}void money_zhichu (){float chazhao;printf("请输入查询的money");scanf("%f",&chazhao);fflush(stdin);struct list *p = zhichuhead;while(p != NULL){if(p->info.money==chazhao){printf("姓名:");puts(p->);printf("日期:");puts(p->info.riqi);printf("收入:");printf("%.4f\n",p->info.money);printf("备注:");puts(p->info.beizhu);system("PAUSE");}p = p->next;}if(zhichuhead!=NULL){char panduan;printf("是否继续查询(Y/N)");panduan=getchar();fflush(stdin);if(panduan=='Y'||panduan=='y'){chaxun_zhichu();}}}void money_xiugai_income(){float xiugai;printf("请输入修改的money");scanf("%f",&xiugai);fflush(stdin);struct list *p = Inhead;while(p != NULL){if(p->info.money==xiugai){fflush(stdin);printf("姓名:");gets(p->);fflush(stdin);printf("日期:");gets(p->info.riqi);fflush(stdin);printf("支出: ");scanf("%f",&p->info.money);fflush(stdin);printf("备注:");gets(p->info.beizhu);fflush(stdin);//------}p = p->next;}Save_income();if(Inhead!=NULL){char panduan;printf("是否继续修改(Y/N)");panduan=getchar();fflush(stdin);if(panduan=='Y'||panduan=='y'){xiugai_income();}}}void money_xiugai_zhichu(){float xiugai;printf("请输入修改的money");scanf("%f",&xiugai);fflush(stdin);struct list *p = zhichuhead;while(p != NULL){if(p->info.money==xiugai){fflush(stdin);printf("姓名:");gets(p->);fflush(stdin);printf("日期:");gets(p->info.riqi);fflush(stdin);printf("支出: ");scanf("%f",&p->info.money);fflush(stdin);printf("备注:");gets(p->info.beizhu);fflush(stdin);//------}p = p->next;}Save_zhichu();if(zhichuhead!=NULL){char panduan;printf("是否继续修改(Y/N)");panduan=getchar();fflush(stdin);if(panduan=='Y'||panduan=='y'){xiugai_zhichu();}}}void beizhu(){char chazhao[20];printf("请输入查询的备注");gets(chazhao);struct list *p = Inhead;while(p != NULL){if(strcmp(p->info.beizhu,chazhao)==0){printf("姓名:");puts(p->);printf("日期:");puts(p->info.riqi);printf("收入:");printf("%.4f\n",p->info.money);printf("备注:");puts(p->info.beizhu);system("PAUSE");}p = p->next;}if(Inhead!=NULL){char panduan;printf("是否继续查询(Y/N)");panduan=getchar();fflush(stdin);if(panduan=='Y'||panduan=='y'){chaxun_income();}}}void beizhu_zhichu(){char chazhao[20];printf("请输入查询的备注");gets(chazhao);struct list *p = zhichuhead;while(p != NULL){if(strcmp(p->info.beizhu,chazhao)==0){printf("姓名:");puts(p->);printf("日期:");puts(p->info.riqi);printf("收入:");printf("%.4f\n",p->info.money);printf("备注:");puts(p->info.beizhu);system("PAUSE");}p = p->next;}if(zhichuhead!=NULL){char panduan;printf("是否继续查询(Y/N)");panduan=getchar();fflush(stdin);if(panduan=='Y'||panduan=='y'){chaxun_zhichu();}}}void beizhu_xiugai_income(){char xiugai[20];printf("请输入修改的备注");fflush(stdin);gets(xiugai);struct list *p = Inhead;while(p != NULL){if(strcmp(p->info.beizhu,xiugai)==0){fflush(stdin);printf("姓名:");gets(p->);fflush(stdin);printf("日期:");gets(p->info.riqi);fflush(stdin);printf("支出: ");scanf("%f",&p->info.money);fflush(stdin);printf("备注:");gets(p->info.beizhu);fflush(stdin);//------}p = p->next;}Save_income();if(Inhead!=NULL){char panduan;printf("是否继续修改(Y/N)");panduan=getchar();fflush(stdin);if(panduan=='Y'||panduan=='y'){xiugai_income();}}}void beizhu_xiugai_zhichu(){char xiugai[20];printf("请输入修改的备注");fflush(stdin);gets(xiugai);fflush(stdin);struct list *p = zhichuhead;while(p != NULL){if(strcmp(p->info.beizhu,xiugai)==0){fflush(stdin);printf("姓名:");gets(p->);fflush(stdin);printf("日期:");gets(p->info.riqi);fflush(stdin);printf("支出: ");scanf("%f",&p->info.money);fflush(stdin);printf("备注:");gets(p->info.beizhu);fflush(stdin);//------}p = p->next;}Save_zhichu();if(zhichuhead!=NULL){char panduan;printf("是否继续修改(Y/N)");panduan=getchar();fflush(stdin);if(panduan=='Y'||panduan=='y'){xiugai_zhichu();}}}void Income_menu(){system("cls");printf("\n");printf("\n");printf("\n");printf("\n");printf("******************\n");printf("欢迎使用家庭财务管理系统\n");printf("******************\n");printf(" \n");printf(" 1.添加收入\n");printf(" 2.删除收入\n");printf(" 3.查询收入\n");printf(" 4.显示收入\n");printf(" 5.修改收入\n");printf(" 0.返回上一级\n");}void zhichu_menu(){system("cls");printf("\n");printf("\n");printf("\n");printf("\n");printf("******************\n");printf("欢迎使用家庭财务管理系统\n");printf("******************\n");printf(" \n");printf(" 1.添加支出\n");printf(" 2.删除支出\n");printf(" 3.查询支出\n");printf(" 4.显示支出\n");printf(" 5.修改支出\n");printf(" 0.返回上一级\n");}void chaxun_menu(){system("cls");printf("\n");printf("\n");printf("\n");printf("\n");printf("******************\n");printf("欢迎使用家庭财务管理系统\n");printf("******************\n");printf(" \n");printf(" 1.按名字查询\n");printf(" 2.按日期查询\n");printf(" 3.按money询\n");printf(" 4.按备注查询\n");printf(" 0.返回上一级\n"); }void xiugai_menu(){system("cls");printf("\n");printf("\n");printf("\n");printf("\n");printf("******************\n");printf("欢迎使用家庭财务管理系统\n");printf("******************\n");printf(" \n");printf(" 1.按名字修改\n");printf(" 2.按日期修改\n");printf(" 3.按money修改\n");printf(" 4.按备注修改\n");printf(" 0.返回上一级\n");}void Add_income(){char panduan;do{temp=(struct list*)malloc(sizeof(struct list));printf("姓名");gets(temp->);fflush(stdin);printf("日期(XX年XX月XX日)");gets(temp->info.riqi);fflush(stdin);printf("收入");scanf("%f",&temp->info.money);fflush(stdin);printf("备注");gets(temp->info.beizhu);fflush(stdin);printf("\n");//------自己添加temp->next=NULL;if(Inhead == NULL){Inhead = temp;Intail = temp;}else{Intail->next = temp;Intail = temp;}Save_income();//后面可以添加“继续添加功能”printf("是否(Y/N)继续添加信息\n");panduan=getchar();fflush(stdin);}while(panduan=='Y'||panduan=='y');system("PAUSE");}void Add_zhichu(){char panduan;do{temp=(struct list*)malloc(sizeof(struct list));printf("姓名");gets(temp->);fflush(stdin);printf("日期(XX年XX月XX日)");gets(temp->info.riqi);fflush(stdin);printf("支出");scanf("%f",&temp->info.money);fflush(stdin);printf("备注");gets(temp->info.beizhu);fflush(stdin);printf("\n");//------自己添加temp->next=NULL;if(zhichuhead == NULL){zhichuhead = temp;zhichutail = temp;}else{zhichutail->next = temp;zhichutail = temp;}Save_zhichu();//后面可以添加“继续添加功能”printf("是否(Y/N)继续添加信息\n");panduan=getchar();fflush(stdin);}while(panduan=='Y'||panduan=='y');system("PAUSE");}void Del_income(){char shanchu[20];struct list *p=NULL;struct list *m =NULL;struct list *n =NULL;p=Inhead;printf("请输入删除姓名");gets(shanchu);if(strcmp(Inhead->,shanchu)==0){while(Inhead!=NULL && strcmp(Inhead->,shanchu)==0) {char ch;printf("找到一个数据名字为%s,确认删除Y/N?",shanchu);ch=getchar();fflush(stdin);if(ch=='y'||ch=='Y') Inhead=Inhead->next;else break;}}else{if(strcmp(Intail->,shanchu)==0){do{ m=p;p=p->next;}while(p!=Intail);m->next=NULL;}//删除尾巴else{do{m=p;p=p->next;n=p->next;}while(strcmp(p->,shanchu)!=0&&n->next!=NULL);if(strcmp(p->,shanchu)==0)m->next=n;}}//删除除头节点之外的节点,自己课后完成Save_income();if(Inhead!=NULL){char panduan;printf("是否继续删除(Y/N)");panduan=getchar();fflush(stdin);if(panduan=='Y'||panduan=='y'){Del_income();}}}void Del_zhichu(){char shanchu[20];struct list *p=NULL;struct list *m =NULL;struct list *n =NULL;p=zhichuhead;printf("请输入删除姓名");gets(shanchu);if(strcmp(zhichuhead->,shanchu)==0){while(zhichuhead!=NULL && strcmp(zhichuhead->,shanchu)==0) {char ch;printf("找到一个数据名字为%s,确认删除Y/N?",shanchu);ch=getchar();fflush(stdin);if(ch=='y'||ch=='Y') zhichuhead=zhichuhead->next;else break;}}else{if(strcmp(zhichutail->,shanchu)==0){do{ m=p;p=p->next;}while(p!=zhichutail);m->next=NULL;}//删除尾巴else{do{m=p;p=p->next;n=p->next;}while(strcmp(p->,shanchu)!=0&&n->next!=NULL);if(strcmp(p->,shanchu)==0)m->next=n;}}Save_zhichu();//删除除头节点之外的节点,自己课后完成if(zhichuhead!=NULL){char panduan;printf("是否继续删除(Y/N)");panduan=getchar();fflush(stdin);if(panduan=='Y'||panduan=='y'){Del_zhichu();}}}void xiugai_income(){xiugai_menu();int choice;printf(" 请输入你的选择:");scanf("%d",&choice);fflush(stdin);switch(choice){case 1: mingzi_xiugai_income();break;case 2: riqi_xiugai_income();break;case 3: money_xiugai_income();break;case 4: beizhu_xiugai_income();break;default: printf("输入错误");break;}}void xiugai_zhichu(){xiugai_menu();int choice;printf(" 请输入你的选择:");scanf("%d",&choice);fflush(stdin);switch(choice){case 1: mingzi_xiugai_zhichu();break;case 2: riqi_xiugai_zhichu();break;case 3: money_xiugai_zhichu();break;case 4: beizhu_xiugai_zhichu();break;default: printf("输入错误");break;}}void chaxun_income(){chaxun_menu();int choice;printf(" 请输入你的选择:");scanf("%d",&choice);fflush(stdin);switch(choice){case 1: mingzi();break;case 2: riqi();break;case 3: money();break;case 4: beizhu();break;default: printf("输入错误");break;}}void chaxun_zhichu(){chaxun_menu();int choice;printf(" 请输入你的选择:");scanf("%d",&choice);fflush(stdin);switch(choice){case 1: mingzi_zhichu();break;case 2: riqi_zhichu();break;case 3: money_zhichu();break;case 4: beizhu_zhichu();break;default: printf("输入错误");break;}}void Sho_income(){struct list *p = Inhead;while(p != NULL){printf("姓名:");puts(p->);printf("日期:");puts(p->info.riqi);printf("收入:");printf("%.4f\n",p->info.money);printf("备注:");puts(p->info.beizhu);p = p->next;}system("PAUSE");}void Sho_zhichu(){struct list *p = zhichuhead;while(p != NULL){fflush(stdin);printf("姓名:");puts(p->);printf("日期:");puts(p->info.riqi);printf("支出:");printf("%.4f\n",p->info.money);printf("备注:");puts(p->info.beizhu);p = p->next;}system("PAUSE");}void Income(){int choice;while(1){Income_menu();printf("请输入选择");scanf("%d",&choice);fflush(stdin);if(choice==0){break;}elseswitch(choice){case 1: Add_income(); Save_income();break;case 2: Del_income(); Save_income();break;case 3: chaxun_income(); Save_income();break;case 4: Sho_income(); Save_income();break;case 5: xiugai_income(); Save_income();break;}}}void zhichu(){int choice;while(1){zhichu_menu();printf("请输入选择");scanf("%d",&choice);fflush(stdin);if(choice==0){break;}elseswitch(choice){case 1: Add_zhichu(); Save_zhichu();break;case 2: Del_zhichu(); Save_zhichu();break;case 3: chaxun_zhichu(); Save_zhichu();break;case 4: Sho_zhichu(); Save_zhichu();break;case 5: xiugai_zhichu(); Save_zhichu();break;}}}void tongji_menu(){system("cls");printf("\n");printf("\n");printf("\n");printf("\n");printf("******************\n");printf("欢迎使用家庭财务管理系统\n");printf("******************\n");printf(" \n");printf(" 1.总收入\n");printf(" 2.总支出\n");printf(" 3.总资金\n");printf(" 0.返回上一级\n");}void zongshouru(){float shouru=0;struct list *linshi;linshi=Inhead;if(linshi!=NULL){do{shouru=linshi->info.money+shouru;linshi=linshi->next;}while(linshi!=NULL);printf("%.4f",shouru);system("PAUSE");}}void zongzhichu(){float zhichu=0;struct list *linshi;linshi=zhichuhead;if(linshi!=NULL){do{zhichu=linshi->info.money+zhichu;linshi=linshi->next;}while(linshi!=NULL);printf("%.4f",zhichu);system("PAUSE");}}void zongzijin(){float zhichu=0;float zongzijin;struct list *linshi;linshi=zhichuhead;if(linshi!=NULL){do{zhichu=linshi->info.money+zhichu;linshi=linshi->next;}while(linshi!=NULL);}float shouru=0;linshi=Inhead;if(linshi!=NULL){do{shouru=linshi->info.money+shouru;linshi=linshi->next;}while(linshi!=NULL);printf("%.4f",shouru-zhichu);system("PAUSE");}}void Tongji(){while(1){tongji_menu();int choice;printf(" 请输入你的选择:");scanf("%d",&choice);if(choice==0){break;}switch(choice){case 1: zongshouru();break;case 2: zongzhichu();break;case 3: zongzijin();break;default: printf("输入错误");break;}}}void Quit(){char panduan;printf("确认退出(Y/N)");panduan=getchar();fflush(stdin);if(panduan=='Y'||panduan=='y'){exit(0);}}int main(){Open();Openzhichu();system("color 72");while(1){Menu();int choice;printf(" 请输入你的选择:");scanf("%d",&choice);fflush(stdin);switch(choice){case 1: Income();break;case 2: zhichu();break;case 3: Tongji();break;case 0: Quit();break;default: printf("输入错误");break;}}return 0;}。
《家庭财务系统》课程设计报告————————————————————————————————作者:————————————————————————————————日期:菜单:1。
添加收入2.显示收入3。
查询收入4.修改收入5.删除收入6.添加支出7。
显示支出8。
查询支出9.修改支出10。
删除支出11。
显示所有记录12.统计总收入和总支出0.退出系统本软件界面友好,不难操作,每一步执行后都有提示语,只要按照提示一步一步执行就可以了。
而且每执行完一个功能,都会进行清屏,跳出菜单页,这样一方面防止函数执行页面过长,另一方面也方便你选择执行下个功能。
模块化设计方案1、系统主要函数及功能1) #include〈stdio。
h> /*I/O函数*/#include<string.h> /*字符串函数*/#include<stdlib.h〉 /*标准库函数*/#include〈malloc。
h〉/*开辟结点 */#define NULL 0 /*宏定义命令*/2)face()函数:菜单函数,函数返回值为整数,代表所选的菜单项int face()3)init()函数:初始化函数,读取文件夹中信息到内存中,返回指向链表头的指针void init()4)add()函数:添加函数,参数为1,添加收入;参数为0,添加支出void add(int a)5)judge()函数:判断函数,判断文件里有没有记录信息,有信息,返回值为1;无信息,返回值为0int judge()6)print()函数:显示函数,参数为1,只显示收入;参数为0,只显示输出;参数为2,即显示收入又显示输出void print(int a)7)search()函数:查询函数,参数为1,查询收入;参数为0,查询支出void search(int a)8)modify()函数:修改函数,参数为1,修改收入;参数为0,修改支出void modify(int a)9)del()函数:删除函数,参数为1,删除收入;参数为0,删除支出void del(int a)10)count()函数:计算函数,参数为1,只计算总收入;参数为0,只总计算输出;参数为2,即计算总收入又计算总输出void count(int a)11)save()函数:保存函数,把内存中的信息读到文件夹中void save()2、主函数调用各功能函数流程图三、数据结构描述#include<stdio.h〉#include〈string。
1、frm_borrowgo.frmDim Mydb As New ADODB.RecordsetDim Mydb1 As New ADODB.RecordsetDim Str_text As StringDim strflag As StringPrivate Sub cmd_add_Click()txt_man.Locked = Falsetxt_way.Locked = Falsetxt_money.Locked = FalseCombo1.Locked = FalseCheck1.Enabled = TrueDTPicker1.Enabled = Truetxt_man.Text = ""txt_way.Text = ""txt_money.Text = ""Combo1.Text = ""strflag = "添加"Cmdsave.Enabled = TrueEnd SubPrivate Sub cmd_close_Click()Unload MeEnd SubPrivate Sub cmd_del_Click()Dim A As BooleanA = MsgBox("是否真的要删除这条记录?", vbOKCancel + 32 + 256, "删除")If A = True ThenExeCutesql "delete from 借出 where 得款人='" & txt_man.Text & "'", Str_textMsgBox "记录已删除!", , "删除"If Mydb.RecordCount > 0 ThenMydb.MoveNextIf Mydb.EOF Then Mydb.MoveLastCall DbCall BangdingLabel7.Caption = Mydb.RecordCountEnd IfEnd IfEnd SubPrivate Sub cmd_edit_Click()On Error Resume NextDim A As Booleantxt_man.Locked = Falsetxt_way.Locked = Falsetxt_money.Locked = FalseCombo1.Locked = FalseCheck1.Enabled = TrueDTPicker1.Enabled = Truestrflag = "修改"Cmdsave.Enabled = TrueEnd SubPrivate Sub Cmdsave_Click()On Error Resume NextDim A As BooleanIf strflag = "添加" ThenA = MsgBox("是否添加前记录?", vbYesNo + 32, "添加记录")If A = True ThenExeCutesql "insert into 借出 values('" & txt_man.Text & "','" & txt_money.Text & "','" & Combo1.Text & "','" & DTPicker1.Value & "','" & txt_way.Text & "','" & Check1.Value & "')", Str_textMsgBox "数据已经保存!", vbOKOnly + 64, "成功"Call DbLabel7.Caption = Mydb.RecordCountEnd IfElseIf strflag = "修改" ThenA = MsgBox("是否修改前记录?", vbYesNo + 32, "添加记录")If A = True ThenMydb.Update'Mydb.RequeryCall DbMsgBox "数据修改成功!", vbOKOnly + 64, "成功"End IfEnd IfCmdsave.Enabled = Falsetxt_man.Locked = Truetxt_way.Locked = Truetxt_money.Locked = TrueCombo1.Locked = TrueCheck1.Enabled = FalseDTPicker1.Enabled = FalseEnd SubPrivate Sub Combo1_Change()Dim A As IntegerSet Mydb1 = ExeCutesql("select 姓名 from 成员", Str_text)' Set Combo1.DataSource = Mydb1A = Mydb1.RecordCountFor I = 1 To ACombo1.AddItem Mydb1.Fields(0)Mydb1.MoveNextIf Mydb1.EOF Then Exit ForNext IEnd SubPrivate Sub Command1_Click()On Error Resume Next'Call DbMydb.MoveFirstCall BangdingEnd SubPrivate Sub Command2_Click()On Error Resume Next'Call Db'If Not Mydb.BOF Then Mydb.MovePreviousMydb.MovePreviousIf Mydb.BOF ThenMsgBox "这已经是第一条记录了!", vbOKOnly + 32, "注意"Mydb.MoveFirstEnd IfCall BangdingEnd SubPrivate Sub Command3_Click()On Error Resume Next'Call Db'Mydb.MovePrevious'If Mydb.BOF Then' MsgBox "这已经是第一条记录了!", vbOKOnly + 32, "注意"' Mydb.MoveFirst'End IfMydb.MoveNextIf Mydb.EOF ThenMsgBox "这已经是最后一条记录了!", vbOKOnly + 32, "注意"Mydb.MoveLastEnd IfCall BangdingEnd SubPrivate Sub Command4_Click()On Error Resume Next'Call DbMydb.MoveLastCall BangdingEnd SubPrivate Sub Form_Load()On Error Resume Next'Set Mydb = ExeCutesql("select * from 借出", Str_text) Call Db'Call BangdingCheck1.Value = 0Label7.Caption = Mydb.RecordCountDTPicker1.Value = DateCmdsave.Enabled = Falsetxt_man.Locked = Truetxt_way.Locked = Truetxt_money.Locked = TrueCombo1.Locked = TrueCheck1.Enabled = FalseDTPicker1.Enabled = FalseEnd SubPrivate Function Db()On Error Resume NextSet Mydb = ExeCutesql("select * from 借出", Str_text) End FunctionPrivate Function Bangding()On Error Resume NextSet txt_man.DataSource = MydbSet txt_money.DataSource = MydbSet DTPicker1.DataSource = MydbSet txt_way.DataSource = MydbSet Check1.DataSource = Mydbtxt_man.DataField = "得款人"txt_money.DataField = "金额"DTPicker1.Value = "日期"txt_way.DataField = "借款原因"Check1.DataField = "已还"Set Combo1.DataSource = MydbCombo1.DataField = "出借人"End Function2、frm_borromin.frmDim Mydb As New ADODB.RecordsetDim Mydb1 As New ADODB.RecordsetDim Str_text As StringDim strflag As StringPrivate Sub cmd_close_Click()Unload MeEnd SubPrivate Sub cmd_add_Click()txt_man.Locked = Falsetxt_way.Locked = Falsetxt_money.Locked = FalseCombo1.Locked = FalseCheck1.Enabled = TrueDTPicker1.Enabled = Truetxt_man.Text = ""txt_way.Text = ""txt_money.Text = ""Combo1.Text = ""strflag = "添加"Cmdsave.Enabled = TrueEnd SubPrivate Sub cmd_del_Click()Dim A As BooleanA = MsgBox("是否真的要删除这条记录?", vbOKCancel + 32 + 256, "删除")If A = True ThenExeCutesql "delete from 借入 where 得款人='" & txt_man.Text & "'", Str_textMsgBox "记录已删除!", , "删除"If Mydb.RecordCount > 0 ThenMydb.MoveNextIf Mydb.EOF Then Mydb.MoveLastCall DbCall BangdingLabel7.Caption = Mydb.RecordCountEnd IfEnd IfEnd SubPrivate Sub cmd_edit_Click()On Error Resume NextDim A As Booleantxt_man.Locked = Falsetxt_way.Locked = Falsetxt_money.Locked = FalseCombo1.Locked = FalseCheck1.Enabled = TrueDTPicker1.Enabled = Truestrflag = "修改"Cmdsave.Enabled = TrueEnd SubPrivate Sub Cmdsave_Click()On Error Resume NextDim A As BooleanIf strflag = "添加" ThenA = MsgBox("是否添加前记录?", vbYesNo + 32, "添加记录")If A = True ThenExeCutesql "insert into 借入 values('" & txt_man.Text & "','" & txt_money.Text & "','" & Combo1.Text & "','" & Format(DTPicker1.Value, "yyyy-mm-dd") & "','" & txt_way.Text & "','" & Check1.Value & "')", Str_textMsgBox "数据已经保存!", vbOKOnly + 64, "成功"Call DbLabel7.Caption = Mydb.RecordCountEnd IfElseIf strflag = "修改" ThenA = MsgBox("是否修改前记录?", vbYesNo + 32, "添加记录")If A = True ThenMydb.Update'Mydb.RequeryCall DbMsgBox "数据修改成功!", vbOKOnly + 64, "成功"End IfEnd Iftxt_man.Locked = Truetxt_way.Locked = Truetxt_money.Locked = TrueCombo1.Locked = TrueCheck1.Enabled = FalseDTPicker1.Enabled = FalseCmdsave.Enabled = FalseEnd SubPrivate Sub Combo1_Change()Set Mydb1 = ExeCutesql("select 姓名 from 成员", Str_text)'Set Combo1.DataSource = Mydb1For I = 1 To Mydb1.RecordCountCombo1.AddItem (Mydb1.Fields(0))Mydb1.MoveNextIf Mydb1.EOF Then Exit ForNext IEnd SubPrivate Sub Command1_Click()On Error Resume Next' Call DbMydb.MoveFirstCall BangdingEnd SubPrivate Sub Command3_Click()On Error Resume Next'Call DbMydb.MoveNextIf Mydb.EOF ThenMsgBox "这已经是最后一条记录了!", vbOKOnly + 32, "注意"Mydb.MoveLastEnd IfCall BangdingEnd SubPrivate Sub Command2_Click()On Error Resume NextMydb.MovePreviousIf Mydb.BOF ThenMsgBox "这已经是第一条记录了!", vbOKOnly + 32, "注意"Mydb.MoveFirstEnd IfCall BangdingEnd SubPrivate Sub Command4_Click()On Error Resume Next'Call DbMydb.MoveLastCall BangdingEnd SubPrivate Sub Form_Load()On Error Resume NextCall DbCall BangdingCmdsave.Enabled = FalseCheck1.Value = 0Label7.Caption = Mydb.RecordCountDTPicker1.Value = Datetxt_man.Locked = Truetxt_way.Locked = Truetxt_money.Locked = TrueCombo1.Locked = TrueCheck1.Enabled = FalseDTPicker1.Enabled = FalseEnd SubPrivate Function Db()Set Mydb = ExeCutesql("select * from 借入", Str_text) End FunctionPrivate Function Bangding()On Error Resume NextSet txt_man.DataSource = MydbSet txt_money.DataSource = MydbSet DTPicker1.DataSource = MydbSet txt_way.DataSource = MydbSet Check1.DataSource = Mydbtxt_man.DataField = "得款人"txt_money.DataField = "金额"DTPicker1.DataField = "日期"txt_way.DataField = "出借原因"Check1.DataField = "已还"Set Combo1.DataSource = MydbCombo1.DataField = "出借人"End Function3、frm_choose.frmPrivate Sub cmd_choose_Click()On Error Resume NextCommonDialog1.Filter = "database(*.mdb)|*.mdb"CommonDialog1.ShowOpenStr_path = CommonDialog1.FileNameText1.Text = CommonDialog1.FileNameSaveSetting "小财迷", "personal", "路径", Str_pathText2.Text = CommonDialog1.FileNameIf Text2.Text <> "" Thenfrm_login.ShowUnload MeElseShowEnd IfEnd SubPrivate Sub cmd_ok_Click()On Error Resume NextStr_path = Text1.TextSaveSetting "小财迷", "personal", "路径", Str_pathfrm_login.ShowUnload MeEnd Sub4、frm_date.frmDim Mydb As New ADODB.RecordsetDim Riqi, Riqi1, Year1, Month As StringPrivate Sub Command1_Click()'Dim Riqi, Riqi1, Year, Month As StringIf Combo1.Text = "" ThenMsgBox "请选择年份!", vbOKOnly + 32, "注意!"ElseIf Combo2.Text = "" ThenMsgBox "请选择月份!", vbOKOnly + 32, "注意!"ElseAA = TrueYear1 = Combo1.TextMonth = Combo2.TextRiqi = Year1 & "-" & MonthRiqi1 = Year1 & "-" & Month + 1'MsgBox Riqi'Set Mydb = ExeCutesql("select * from 收入where 日期between '" & Riqi & "' and '" & Riqi1 & "' ", "")Cdate1 = Format(Riqi, "yyyy-mm")Cdate2 = Format(Riqi1, "yyyy-mm")Unload MeEnd IfEnd IfEnd SubPrivate Sub Form_Load()Dim A As IntegerA = 2000For I = 2000 To Int(Year(Now))Combo1.AddItem AA = A + 1Next IEnd Sub5、frm_expend.frmDim Mydb As New ADODB.RecordsetDim Mydb1 As New ADODB.RecordsetDim Mydb2 As New ADODB.RecordsetDim Count1 As New ADODB.RecordsetDim Str_text As StringPrivate Sub cmd_add_Click()On Error Resume NextDim A, BB = 1Set Count1 = ExeCutesql("select * from 支出", Str_text)Count1.MoveLastB = Count1.Fields(7) + 1A = MsgBox("是否添加前记录?", vbYesNo + 32, "添加记录")If A = vbYes ThenIf txt_intake.Text = "" ThenMsgBox "请填写去向!", vbOKOnly + 32, "注意!"ElseExeCutesql "insert into 支出values('" & Format(DTPicker1.Value, "yyyy-mm-dd") & "','" _& Combo1.Text & "','" & txt_money.Text & "','" & Combo2.Text & "','" & txt_intake.Text _& "','" & Combo3.Text & "','" & txt_mome.Text & "','" & B & "')", Str_textMsgBox "数据已经保存!", vbOKOnly + 64, "成功"Call XiangmuCall DbEnd IfEnd IfEnd SubPrivate Sub cmd_close_Click()Unload MeEnd SubPrivate Sub cmd_del_Click()On Error Resume NextDim AA = MsgBox("是否删除当前记录?", vbYesNo + 32 + 256, "添加记录")If A = vbYes ThenExeCutesql "DELETE from 支出 where key=" & txt_note.Text & "", Str_textCall DbSet Mydb = ExeCutesql("select * from 支出 ", Str_text)Set MSHFlexGrid1.DataSource = MydbEnd IfEnd SubPrivate Sub cmd_edit_Click()On Error Resume NextDim AA = MsgBox("是否修改前记录?", vbYesNo + 32, "添加记录")If A = vbYes ThenExeCutesql "Update 支出Set 日期= '" & Format(DTPicker1.Value, "yyyy-mm-dd") & "',方式='" & Combo1.Text & "',金额=" & txt_money.Text & ", 去向='" & txt_intake.Text & "',人员='" & Combo3.Text & "',备注='" & txt_mome.Text & "' Where key = " & txt_note.Text & " ", Str_text 'Mydb.RequeryCall DbMsgBox "数据修改成功!", vbOKOnly + 64, "成功"End IfEnd SubPrivate Sub Combo2_Change()Call Db1End SubPrivate Sub Combo3_Change()Call Db2End SubPrivate Sub Form_Load()Call DbCall Db1Call Db2DTPicker1.Value = Date' Combo3.Locked = True' Combo1.Locked = TrueEnd SubPublic Function Db()Set Mydb = ExeCutesql("select * from 支出 order by key", Str_text) Set MSHFlexGrid1.DataSource = MydbEnd FunctionPublic Function Db1()On Error Resume NextDim A As IntegerSet Mydb1 = ExeCutesql("select * from 支出项目 ", Str_text)A = Mydb1.RecordCountSet Combo2.DataSource = Mydb1For I = 1 To ACombo2.AddItem Mydb1.Fields(0)Mydb1.MoveNextIf Mydb1.EOF Then Exit ForNext IEnd FunctionPublic Function Db2()On Error Resume NextDim A As IntegerSet Mydb2 = ExeCutesql("select * from 成员", Str_text)A = Mydb2.RecordCountSet Combo3.DataSource = Mydb2For I = 1 To ACombo3.AddItem Mydb2.Fields(0)Mydb2.MoveNextIf Mydb2.EOF Then Exit ForNext ICombo3.AddItem "全家"End FunctionPrivate Sub Form_Unload(Cancel As Integer)'Mydb.Close'Mydb1.Close'Mydb2.CloseEnd SubPrivate Sub MSHFlexGrid1_Click()On Error Resume NextDTPicker1.Value = MSHFlexGrid1.TextMatrix(MSHFlexGrid1.Row, 1) Combo1.Text = MSHFlexGrid1.TextMatrix(MSHFlexGrid1.Row, 2)txt_money.Text = MSHFlexGrid1.TextMatrix(MSHFlexGrid1.Row, 3) Combo2.Text = MSHFlexGrid1.TextMatrix(MSHFlexGrid1.Row, 4)txt_intake.Text = MSHFlexGrid1.TextMatrix(MSHFlexGrid1.Row, 5) Combo3.Text = MSHFlexGrid1.TextMatrix(MSHFlexGrid1.Row, 6)txt_mome.Text = MSHFlexGrid1.TextMatrix(MSHFlexGrid1.Row, 7)txt_note.Text = MSHFlexGrid1.TextMatrix(MSHFlexGrid1.Row, 8)End SubPrivate Sub txt_money_LostFocus()Dim A As BooleanDim CC = txt_money.TextA = IsNumeric(C)If C = "" ThenMsgBox "请输入金额!", vbOKOnly + 32, "注意!"txt_money.SetFocusElseIf A = False ThenMsgBox "金额只能输入数字!", vbOKOnly + 32, "注意!"txt_money.SetFocusEnd IfEnd IfEnd SubPrivate Function Xiangmu()Dim ADim Str_text As StringDim Db As New ADODB.RecordsetStr_text = Combo2.TextSet Db = ExeCutesql("select * from 支出项目 where value='" & Str_text & "'", "")'MsgBoxIf Not Str_text = Db.Fields(0) ThenExeCutesql "insert into 支出项目 values('" & Str_text & "')", ""End IfEnd FunctionPrivate Function Renyuan()'Dim A'Dim Str_text As String'Dim Db As New ADODB.Recordset'Str_text = Combo3.Text'Set Db = ExeCutesql("select * from 成员 where value='" & Str_text & "'", "")'MsgBox'If Not Str_text = Db.Fields(0) Then' ExeCutesql "insert into 成员 values('" & Str_text & "')", ""'End IfEnd Function6、frm_family.frmDim Mydb As New ADODB.RecordsetDim Mydb1 As New ADODB.RecordsetDim Count1 As New ADODB.RecordsetDim Str_text As StringPrivate Sub cmd_add_Click()On Error Resume NextDim A, BB = 1Set Count1 = ExeCutesql("select * from 成员 ", Str_text)Count1.MoveLastB = Count1.Fields(4) + 1A = MsgBox("是否添加前记录?", vbYesNo + 32, "修改记录")If A = vbYes ThenExeCutesql "insert into 成员 values('" & Text1.Text & "','" & Text2.Text & "','" & Format(DTPicker1.Value, "yyyy-mm-dd") & "','" & Text3.Text & "'," & B & ") ", Str_textCall DbMydb.MoveLastMsgBox "数据已经保存!", vbOKOnly + 64, "成功"End IfEnd SubPrivate Sub cmd_close_Click()Unload MeEnd SubPrivate Sub cmd_del_Click()On Error Resume NextDim AA = MsgBox("是否删除当前记录", vbYesNo + 32 + 256, "删除记录")If A = vbYes ThenExeCutesql "DELETE from 成员 where key=" & txt_key.Text & "", Str_text'Mydb.Requery'If Mydb.EOF Then Mydb.MoveLast'Call DbSet Mydb = ExeCutesql("select * from 成员", Str_text)Set MSHFlexGrid1.DataSource = MydbEnd IfEnd SubPrivate Sub cmd_edit_Click()On Error Resume NextDim AA = MsgBox("是否修改前记录?", vbYesNo + 32, "修改记录")If A = vbYes ThenExeCutesql "Update 成员 set 称呼='" & Text1.Text & "',姓名='" & Text2.Text _& "',生日='" & DTPicker1.Value & "',格言='" & Text3.Text & "'where key=" & txt_key.Text & "", Str_textMsgBox "数据已经修改成功!", vbOKOnly + 64, "成功"Call DbEnd IfEnd SubPrivate Sub Form_Load()Call DbDTPicker1.Value = DateEnd SubPrivate Function Db()Set Mydb = ExeCutesql("select * from 成员", Str_text)Set MSHFlexGrid1.DataSource = MydbEnd FunctionPrivate Sub MSHFlexGrid1_Click()On Error Resume NextText1.Text = MSHFlexGrid1.TextMatrix(MSHFlexGrid1.Row, 1)Text2.Text = MSHFlexGrid1.TextMatrix(MSHFlexGrid1.Row, 2)DTPicker1.Value = MSHFlexGrid1.TextMatrix(MSHFlexGrid1.Row, 3) Text3.Text = MSHFlexGrid1.TextMatrix(MSHFlexGrid1.Row, 4)txt_key.Text = MSHFlexGrid1.TextMatrix(MSHFlexGrid1.Row, 5)End Sub7、frm_fix.frmDim Mydb As New ADODB.RecordsetDim Mydb1 As New ADODB.RecordsetDim Man As New ADODB.RecordsetDim Count1 As New ADODB.RecordsetDim Str_text As StringPrivate Sub cmd_add_Click()On Error Resume NextDim A, BB = 1Set Count1 = ExeCutesql("select key from 定期存款 ", Str_text) Count1.MoveLastB = Count1.Fields(0) + 1A = MsgBox("是否添加前记录?", vbYesNo + 32, "修改记录")If A = vbYes ThenExeCutesql "insert into 定期存款values('" & Format(DTPicker1.Value, "yyyy-mm-dd") & "','" & txt_name.Text _& "','" & txt_address.Text & "','" & txt_size.Text & "'," & txt_money.Text & ",'" & txt_time.Text & "','" & Combo1.Text & "','" & Check1.Value & "'," & B & ")", Str_textCall BangdingEnd IfEnd SubPrivate Sub cmd_del_Click()On Error Resume NextDim AA = MsgBox("是否删除当前记录?", vbYesNo + 32 + 256, "添加记录")If A = vbYes ThenExeCutesql "DELETE from 定期存款 where key=" & txt_key.Text & "", Str_textCall BangdingEnd IfEnd SubPrivate Sub cmd_edit_Click()On Error Resume NextDim AA = MsgBox("是否修改前记录?", vbYesNo + 32, "添加记录")If A = vbYes ThenExeCutesql "Update 定期存款 Set 日期 = '" & DTPicker1.Value & "',银行名称='" & txt_name.Text _& "',银行地址=" & txt_address.Text & ", 银行账号='" & txt_size.Text & "',金额='" & txt_money.Text _& "',期限='" & txt_time.Text & "',存款人='" & Combo1.Text & "',取否='" & Check1.Value & "' Where key = " & txt_key.Text & " ", Str_text 'Mydb.RequeryCall BangdingMsgBox "数据修改成功!", vbOKOnly + 64, "成功"End IfEnd SubPrivate Sub cmd_quit_Click()Unload MeEnd SubPrivate Sub Form_Load()Dim A As IntegerDTPicker1.Value = DateCall BangdingSet Mydb1 = ExeCutesql("select 姓名 from 成员 ", Str_text)A = Mydb1.RecordCountSet Combo1.DataSource = Mydb1For I = 1 To ACombo1.AddItem Mydb1.Fields(0)Mydb1.MoveNextIf Mydb1.EOF Then Exit ForNext IEnd SubPrivate Function Bangding()Set Mydb = ExeCutesql("select * from 定期存款 ", Str_text) Set MSHFlexGrid1.DataSource = MydbEnd FunctionPrivate Sub MSHFlexGrid1_Click()On Error Resume NextDTPicker1.Value = MSHFlexGrid1.TextMatrix(MSHFlexGrid1.Row, 1) txt_name.Text = MSHFlexGrid1.TextMatrix(MSHFlexGrid1.Row, 2)txt_address.Text = MSHFlexGrid1.TextMatrix(MSHFlexGrid1.Row, 3)txt_size.Text = MSHFlexGrid1.TextMatrix(MSHFlexGrid1.Row, 4)txt_money.Text = MSHFlexGrid1.TextMatrix(MSHFlexGrid1.Row, 5) txt_time.Text = MSHFlexGrid1.TextMatrix(MSHFlexGrid1.Row, 6)Combo1.Text = MSHFlexGrid1.TextMatrix(MSHFlexGrid1.Row, 7)Check1.Value = MSHFlexGrid1.TextMatrix(MSHFlexGrid1.Row, 8)txt_key.Text = MSHFlexGrid1.TextMatrix(MSHFlexGrid1.Row, 9)End Sub8、frm_intake.frmDim Mydb As New ADODB.RecordsetDim Mydb1 As New ADODB.RecordsetDim Mydb2 As New ADODB.RecordsetDim Count1 As New ADODB.RecordsetDim Str_text As StringPrivate Sub cmd_add_Click()On Error Resume NextDim A, BB = 1Set Count1 = ExeCutesql("select * from 收入", Str_text)Count1.MoveLastB = Count1.Fields(7) + 1A = MsgBox("是否添加前记录?", vbYesNo + 32, "添加记录")If A = vbYes ThenIf txt_intake.Text = "" ThenMsgBox "请填写来源!", vbOKOnly + 32, "注意"txt_intake.SetFocusElseExeCutesql "INSERT INTO 收入VALUES('" & Format(DTPicker1.Value, "yyyy-mm-dd") & "','" _& Combo1.Text & "'," & txt_money.Text & ",'" & Combo2.Text & "','" & txt_intake.Text _& "','" & Combo3.Text & "','" & txt_mome.Text & "'," & B & ")", Str_textMsgBox "数据已经保存!", vbOKOnly + 64, "成功"Call XiangmuCall DbEnd IfEnd IfEnd SubPrivate Sub cmd_close_Click()Unload MeEnd SubPrivate Sub cmd_del_Click()On Error Resume NextDim AA = MsgBox("是否删除当前记录?", vbYesNo + 32 + 256, "添加记录")If A = vbYes Then'Mydb.UpdateBatchExeCutesql "DELETE from 收入 where key=" & txt_note.Text & "", Str_textCall DbSet Mydb = ExeCutesql("select * from 收入 ", Str_text)Set MSHFlexGrid1.DataSource = MydbEnd IfEnd SubPrivate Sub cmd_edit_Click()'On Error Resume NextDim AA = MsgBox("是否修改当前记录?", vbYesNo + 32, "添加记录")If A = vbYes ThenExeCutesql "Update 收入 Set 日期 = '" & Format(DTPicker1.Value, "yyyy-mm-dd") & "',方式='" & Combo1.Text & "',金额=" & txt_money.Text & ", 来源='" & txt_intake.Text & "',人员='" & Combo3.Text & "',备注='" & txt_mome.Text & "' Where key = " & txt_note.Text & " ", Str_textCall DbMsgBox "数据修改成功!", vbOKOnly + 64, "成功"End If'MsgBox "Update 收入 Set 日期 = '" & DTPicker1.Value & "',方式='" & Combo1.Text & "',金额=" & txt_money.Text & ", 来源='" & txt_intake.Text & "',人员='" & Combo3.Text & "',备注='" & txt_mome.Text & "' Where key = '" & txt_note.Text & " '"End SubPrivate Sub Combo2_Change()Call Db1End SubPrivate Sub Combo3_Change()Call Db2End SubPrivate Sub Command1_Click()Call DbEnd SubPrivate Sub Form_Load()Call DbCall Db1Call Db2DTPicker1.Value = Date'Combo3.Locked = True'Combo1.Locked = TrueEnd SubPublic Function Db()Set Mydb = ExeCutesql("select * from 收入 order by key ", Str_text) Set MSHFlexGrid1.DataSource = MydbEnd FunctionPublic Function Db1()On Error Resume NextDim A As IntegerSet Mydb1 = ExeCutesql("select * from 收入项目 ", Str_text)A = Mydb1.RecordCountSet Combo2.DataSource = Mydb1For I = 1 To ACombo2.AddItem Mydb1.Fields(0)Mydb1.MoveNextIf Mydb1.EOF Then Exit ForNext IEnd FunctionPublic Function Db2()On Error Resume NextDim A As IntegerSet Mydb2 = ExeCutesql("select * from 成员", Str_text)A = Mydb2.RecordCountSet Combo3.DataSource = Mydb2For I = 1 To ACombo3.AddItem Mydb2.Fields(0)Mydb2.MoveNextIf Mydb2.EOF Then Exit ForNext ICombo3.AddItem "全家"End FunctionPrivate Sub Form_Unload(Cancel As Integer)'Mydb.Close'Mydb1.Close'Mydb2.CloseEnd SubPrivate Sub MSHFlexGrid1_Click()On Error Resume NextDTPicker1.Value = MSHFlexGrid1.TextMatrix(MSHFlexGrid1.Row, 1) Combo1.Text = MSHFlexGrid1.TextMatrix(MSHFlexGrid1.Row, 2)txt_money.Text = MSHFlexGrid1.TextMatrix(MSHFlexGrid1.Row, 3) Combo2.Text = MSHFlexGrid1.TextMatrix(MSHFlexGrid1.Row, 4)txt_intake.Text = MSHFlexGrid1.TextMatrix(MSHFlexGrid1.Row, 5) Combo3.Text = MSHFlexGrid1.TextMatrix(MSHFlexGrid1.Row, 6)txt_mome.Text = MSHFlexGrid1.TextMatrix(MSHFlexGrid1.Row, 7)txt_note.Text = MSHFlexGrid1.TextMatrix(MSHFlexGrid1.Row, 8)End SubPrivate Sub txt_money_LostFocus()Dim A As BooleanDim CC = txt_money.TextA = IsNumeric(C)If C = "" ThenMsgBox "请输入金额!", vbOKOnly + 32, "注意!"txt_money.SetFocusElseIf A = False ThenMsgBox "金额只能输入数字!", vbOKOnly + 32, "注意!"txt_money.SetFocusEnd IfEnd IfEnd SubPrivate Function Xiangmu()Dim ADim Str_text As StringDim Db As New ADODB.RecordsetStr_text = Combo2.TextSet Db = ExeCutesql("select * from 支出项目 where value='" &Str_text & "'", "")'MsgBoxIf Not Str_text = Db.Fields(0) ThenExeCutesql "insert into 支出项目 values('" & Str_text & "')", ""End IfEnd Function9、frm_list.frmDim Mydb As New ADODB.RecordsetDim Mydb1 As New ADODB.RecordsetDim Money As New ADODB.RecordsetDim Money1 As New ADODB.RecordsetDim Str_text As StringPrivate Sub Command1_Click()frm_rate.ShowEnd SubPrivate Sub Command2_Click()frm_date.ShowEnd SubPrivate Sub Command3_Click()Unload MeEnd SubPrivate Sub Form_Activate()On Error Resume NextDim A, B, C As IntegerDim D As StringDim Year1, Month1, Riqi, Riqi1, Riqi3, Riqi4If AA = True ThenSet Mydb = ExeCutesql("select * from 收入 where 日期 between '" & Cdate1 & "' and '" & Cdate2 & "' ", "")Set MSHFlexGrid1.DataSource = MydbSet Mydb1 = ExeCutesql("select * from 支出 where 日期 between '" & Cdate1 & "' and '" & Cdate2 & "' ", "")Set MSHFlexGrid2.DataSource = Mydb1Set Money = ExeCutesql("select sum(金额) from 收入 where 日期between '" & Cdate1 & "'and '" & Cdate2 & "'", "")A = Money.Fields(0)If IsNull(A) ThenA = 0。