0

项目:将 Access DB 转变为基于 Web 的应用程序。

Access DB 描述:有两个关联的 .mdb。除了与后端 .mdb 交互的表单外,什么都没有。对于每个客户,都有一个 mdb 文件,其中包含他们公司的特定信息,我将其称为后端。客户加载访问权限,然后选择他们公司特定的后端,并通过前端表单生成报告、修改后端数据等与之交互。

进展:我已经创建了大多数使用 php 和 HTML 复制访问前端的表单。我正在复制后端访问数据库的 MySQL 数据库中构建表。

问题:是否有执行此过程的工具?需要一个数据库前端和后端,并自动化成为基于 Web 的过程?是否有可以受密码保护的 Cloud Access 版本?

我看过像 Zoho 和其他一些产品,他们似乎没有复制表格,只有表格对我没有好处。

任何帮助或输入表示赞赏。

4

3 回答 3

2

如 Access 2010 中所述,您现在有一个 Web 发布选项。您在 Access 中创建的表单将转换为 .net XMAL (zammel) 表单。事实上,这项工作相当不错,因为它们是完整的 AJAX 表单和子表单等,甚至可以动态加载以节省带宽。

您在访问 Web 表单中编写的任何代码都将成为 JavaScrip 并在浏览器中本地运行。(您必须使用新编辑器编写此代码 - VBA 不会在这些表单中运行)。

您可以将网站发布到 Office 365,这非常便宜(每月 6 美元起)。这是运行此类访问应用程序的示例,并注意在中途我如何切换到在浏览器中 100% 运行应用程序。

http://www.youtube.com/watch?v=AU4mH0jPntI

还要记住,这些生成的表单基于 Web 标准,客户端不需要 ActiveX 或 Silverlight(例如,这些表单可以在 iPad 上工作)。

而且因为您的后端不在 accDB 文件中,而是驻留在 office 365 中的表(列表)中,所以您使用了一个非常大且非常水平的可扩展服务器场(对用户数量没有真正的限制)。

除了将您的 Web 应用程序发布到 Office 365 之外,您还可以发布到 SharePoint 2010(但您需要现场企业版)。您也可以选择像 www.accesshosting.com 这样的人

尽管此设置为您提供了一种使用 Access 开发 Web 应用程序的出色 RAD 和快速方法,但请记住,现有表单或 VBA 代码没有转换实用程序。

但是,您可以将现有的 VBA 应用程序转换为基于 Web 的应用程序,并继续在每个用户的桌面上使用 VBA 应用程序以及云中的后端数据。然后,随着时间的推移,您可以将一些 Web 表单添加到 SAME 应用程序中,例如平板电脑等。这就是众所周知的混合应用程序。(Web 部件和旧版 VBA 部件都存在于同一应用程序中)。

因此,根据您的需要,在云中获取 Access 的一种好方法实际上是使用 Access。

于 2012-07-21T00:39:18.837 回答
1

前端?否。后端?:MySql Workbench具有专门设计用于从多个源(包括 Access)复制 shcema 的数据迁移工具。我已经使用了很多次并且对它很满意。

于 2012-07-20T16:35:43.310 回答
0

我在模块内使用 VBA 宏将基本表单“导出”到 html。要使用它,请在数据库中添加一个模块并在第一个 for 循环中将表单名称替换为您的表单名称。它确实是基本脚本,但您可以增加它。实际上只导出文本控件。

Public Sub main()
  On Error Resume Next
  Dim ctl As Control
  Dim ppt As Property

  For Each ctl In Form_frmDadosGerais.Controls
    i_hType = ""
    i_name = ""
    i_cSource = ""
    'Debug.Print ctl.name & "  " & ctl.Properties.Count
    i_name = ctl.name
    For Each ppt In ctl.Properties
      If ppt.name = "Caption" Or ppt.name = "Visible" Then
        'REM Debug.Print "   " & ppt.Name & ":" & ppt.Value

      ElseIf ppt.name = "Width" Or ppt.name = "Height" Or ppt.name = "Top" Or ppt.name = "Left" Then
        'REM Debug.Print "   " & ppt.Name & ":" & getPixelsFrom(ppt.Value)

      ElseIf ppt.name = "ControlType" Then
        'REM Debug.Print "   " & ppt.Name & ":" & getCotrolType(ppt.Value)
        i_hType = getCotrolType(ppt.Value)

      ElseIf ppt.name = "ControlSource" Then
        i_cSource = ppt.Value

      ElseIf ppt.name = "Name" Or ppt.name = "ControlType" Or ppt.name = "ControlSource" Or ppt.name = "Format" Or ppt.name = "DecimalPlaces" Or ppt.name = "TextFormat" Then
        'REM Debug.Print "   " & ppt.Name & ":" & ppt.Value

      Else
        'REM Debug.Print ppt.Name

      End If

    Next ppt

    If i_hType = "text" Then
      Debug.Print getControlAsMaterialHtml(i_hType, i_name, i_cSource, "Tool Tip Text")
    End If
  Next ctl
End Sub


Public Function getCotrolType(ByRef ControlType As Variant) As String
    If ControlType = 109 Then
        getCotrolType = "text"
    ElseIf ControlType = 100 Then
        getCotrolType = "label"
    Else
        getCotrolType = "unknow (" & ControlType & ")"
    End If
End Function


Public Function getPixelsFrom(ByVal v As Variant) As String
  getPixelsFrom = Round(v / 2.54) & "px"
End Function


Public Function getControlAsMaterialHtml(hType As Variant, name As Variant, controlSource As Variant, ttip As Variant) As String
  h = "<div class=""form-group form-md-line-input"">" & Chr(10)
  h = h & "   <input type=""" & hType & """ class=""form-control"" name=""" & name & """ id=""" & name & """ [(ngModel)]=""model." & controlSource & """ placeholder=""Enter your email"">" & Chr(10)
  h = h & "   <label for=""" & name & """>" & name & "</label>" & Chr(10)
  h = h & "   <span class=""help-block"">" & ttip & "</span>" & Chr(10)
  h = h & "</div>" & Chr(10) & Chr(10)

  getControlAsMaterialHtml = h
End Function

请记住,它需要改进,但您可以从这里开始。

对于表和数据,如果你使用的是linux,你可以使用mdb-tools,使用它你可以直接将表和数据导出到MySql服务器。

祝你好运!

于 2017-02-22T12:44:29.500 回答