VBA 语言 开发动物园动物饲养与游客管理系统

VBA阿木 发布于 4 天前 3 次阅读


动物园动物饲养与游客管理系统:VBA【1】 技术实现

随着科技的不断发展,动物园作为公众喜爱的休闲场所,其管理系统的现代化变得尤为重要。VBA(Visual Basic for Applications)作为一种易于学习和使用的编程语言,广泛应用于Office系列软件中,包括Excel、Word等。本文将围绕动物园动物饲养与游客管理系统,利用VBA技术进行开发,实现动物信息管理【2】、游客信息管理【3】、饲养记录【4】以及报表生成【5】等功能。

系统需求分析

在开发动物园动物饲养与游客管理系统之前,我们需要明确系统的需求:

1. 动物信息管理:包括动物的种类、名称、年龄、性别、健康状况等基本信息。
2. 游客信息管理:包括游客的姓名、性别、年龄、联系方式等基本信息。
3. 饲养记录:记录动物的饲养情况,如饲料摄入量、健康状况变化等。
4. 报表生成:生成动物和游客的统计报表【6】,如动物种类分布、游客年龄分布等。
5. 用户权限管理【7】:区分管理员和普通用户,管理员可以访问所有功能,普通用户只能访问部分功能。

系统设计

数据库设计【8】

由于VBA本身不支持数据库操作,我们需要借助外部数据库,如Microsoft Access【9】。以下是数据库的设计:

- 动物表【10】(Animals):字段包括AnimalID(动物ID)、Species(种类)、Name(名称)、Age(年龄)、Gender(性别)、HealthStatus(健康状况)。
- 游客表【11】(Visitors):字段包括VisitorID(游客ID)、Name(姓名)、Gender(性别)、Age(年龄)、ContactInfo(联系方式)。
- 饲养记录表【12】(FeedingRecords):字段包括RecordID(记录ID)、AnimalID(动物ID)、Date(日期)、FeedingAmount(饲料摄入量)、HealthNotes(健康状况备注)。

VBA界面设计

使用Excel作为前端界面,设计以下功能模块:

1. 动物信息管理:包括添加、修改、删除动物信息。
2. 游客信息管理:包括添加、修改、删除游客信息。
3. 饲养记录:记录动物的饲养情况。
4. 报表生成:生成动物和游客的统计报表。
5. 用户权限管理:区分管理员和普通用户。

VBA代码实现

动物信息管理

以下是一个简单的VBA代码示例,用于添加动物信息:

vba
Sub AddAnimal()
Dim ws As Worksheet
Set ws = ThisWorkbook.Sheets("Animals")

' 获取用户输入
Dim animalID As String
Dim species As String
Dim name As String
Dim age As Integer
Dim gender As String
Dim healthStatus As String

animalID = InputBox("Enter Animal ID:")
species = InputBox("Enter Species:")
name = InputBox("Enter Name:")
age = InputBox("Enter Age:")
gender = InputBox("Enter Gender:")
healthStatus = InputBox("Enter Health Status:")

' 插入新行并填充数据
ws.Cells(ws.Rows.Count, "A").End(xlUp).Offset(1, 0).Value = animalID
ws.Cells(ws.Rows.Count, "B").End(xlUp).Offset(1, 0).Value = species
ws.Cells(ws.Rows.Count, "C").End(xlUp).Offset(1, 0).Value = name
ws.Cells(ws.Rows.Count, "D").End(xlUp).Offset(1, 0).Value = age
ws.Cells(ws.Rows.Count, "E").End(xlUp).Offset(1, 0).Value = gender
ws.Cells(ws.Rows.Count, "F").End(xlUp).Offset(1, 0).Value = healthStatus
End Sub

游客信息管理

以下是一个简单的VBA代码示例,用于添加游客信息:

vba
Sub AddVisitor()
Dim ws As Worksheet
Set ws = ThisWorkbook.Sheets("Visitors")

' 获取用户输入
Dim visitorID As String
Dim name As String
Dim gender As String
Dim age As Integer
Dim contactInfo As String

visitorID = InputBox("Enter Visitor ID:")
name = InputBox("Enter Name:")
gender = InputBox("Enter Gender:")
age = InputBox("Enter Age:")
contactInfo = InputBox("Enter Contact Info:")

' 插入新行并填充数据
ws.Cells(ws.Rows.Count, "A").End(xlUp).Offset(1, 0).Value = visitorID
ws.Cells(ws.Rows.Count, "B").End(xlUp).Offset(1, 0).Value = name
ws.Cells(ws.Rows.Count, "C").End(xlUp).Offset(1, 0).Value = gender
ws.Cells(ws.Rows.Count, "D").End(xlUp).Offset(1, 0).Value = age
ws.Cells(ws.Rows.Count, "E").End(xlUp).Offset(1, 0).Value = contactInfo
End Sub

饲养记录

以下是一个简单的VBA代码示例,用于记录动物的饲养情况:

vba
Sub RecordFeeding()
Dim ws As Worksheet
Set ws = ThisWorkbook.Sheets("FeedingRecords")

' 获取用户输入
Dim animalID As String
Dim dateValue As Date
Dim feedingAmount As Double
Dim healthNotes As String

animalID = InputBox("Enter Animal ID:")
dateValue = InputBox("Enter Date (YYYY-MM-DD):", "Date", Format(Now, "yyyy-mm-dd"))
feedingAmount = InputBox("Enter Feeding Amount:")
healthNotes = InputBox("Enter Health Notes:")

' 插入新行并填充数据
ws.Cells(ws.Rows.Count, "A").End(xlUp).Offset(1, 0).Value = animalID
ws.Cells(ws.Rows.Count, "B").End(xlUp).Offset(1, 0).Value = dateValue
ws.Cells(ws.Rows.Count, "C").End(xlUp).Offset(1, 0).Value = feedingAmount
ws.Cells(ws.Rows.Count, "D").End(xlUp).Offset(1, 0).Value = healthNotes
End Sub

报表生成

以下是一个简单的VBA代码示例,用于生成动物种类分布报表:

vba
Sub GenerateAnimalSpeciesReport()
Dim ws As Worksheet
Set ws = ThisWorkbook.Sheets("AnimalSpeciesReport")

' 清空现有数据
ws.Cells.ClearContents

' 获取动物种类数据
Dim animalSpecies As Range
Set animalSpecies = ThisWorkbook.Sheets("Animals").Range("B:B")

' 统计每种动物的数量
Dim speciesCount As Object
Set speciesCount = CreateObject("Scripting.Dictionary")

Dim cell As Range
For Each cell In animalSpecies
If Not speciesCount.Exists(cell.Value) Then
speciesCount.Add cell.Value, 1
Else
speciesCount(cell.Value) = speciesCount(cell.Value) + 1
End If
Next cell

' 填充报表数据
Dim i As Integer
i = 1
For Each key In speciesCount.Keys
ws.Cells(i, 1).Value = key
ws.Cells(i, 2).Value = speciesCount(key)
i = i + 1
Next key
End Sub

用户权限管理

由于VBA本身不支持用户权限管理,我们可以通过设置Excel的宏安全级别【13】来实现简单的权限控制:

1. 打开Excel,点击“文件”>“选项”>“信任中心”>“宏设置”。
2. 选择“禁用所有宏,没有通知”或“禁用无数字签名宏,有通知”。
3. 运行宏时,会弹出提示框,要求用户确认是否允许运行。

总结

本文介绍了利用VBA技术开发动物园动物饲养与游客管理系统的过程。通过VBA代码实现动物信息管理、游客信息管理、饲养记录以及报表生成等功能,为动物园的管理提供了便捷的工具。实际应用中,系统可能需要更加复杂的功能和更完善的设计,但本文所提供的基本框架和代码示例可以为后续的开发提供参考。