繁体   English   中英

如何将mysql中数据库中的数据或表格显示为ms访问形式可编辑? (像列表框一样可编辑)

[英]How to display the data or table in database in mysql as editable in ms access form? (Like List box as editable )

我使用 Ms-Access 作为前端,使用 mysql 作为后端。 我显示来自 mysql 列表框的数据,我需要编辑列表框本身的数据。

有没有其他方法可以编辑数据。

我尝试了几种我找不到的方法。

预先感谢。

需要你的帮助。

列表中的表格附加了我在列表视图中显示的图像

在此处输入图像描述

    Option Compare Database
    Option Explicit
    Dim cn As New ADODB.Connection
    Dim rs As New ADODB.Recordset
    Dim cmdtext As New ADODB.Command

Private Sub cmd_extract_Click()
Dim strfield As String
Dim strextract As String
Dim intItemsInList As Integer
Dim intCounter As Integer
Dim intRow As Integer
Dim intCol As Integer
intItemsInList = Me![lstbox].ListCount
For intCounter = 0 To intItemsInList - 1
  Me![lstbox].RemoveItem 0
Next

strfield = Me.cmb1
If strfield = "ALL" Then
strextract = "SELECT *FROM emp_details JOIN dept_details ON emp_details.E_Dept = dept_details.D_Name ORDER BY Emp_Id  ASC;"
Set cmdtext.ActiveConnection = cn
cmdtext.CommandType = adCmdText
cmdtext.CommandText = strextract
Set rs = cmdtext.Execute
Me.lstbox.AddItem ("EMP-ID" & ";" & "EMP-NAME" & ";" & "EMP-DEPT" & ";" & "EMP-SALARY" & ";" & "DEPT_ID" & ";" & "DEPT_NAME" & ";" & "DEPT_HEAD")
If (rs.RecordCount <> 0) Then
Do While Not rs.EOF
With Me.lstbox
.AddItem (rs.Fields(0) & ";" & rs.Fields(1) & ";" & rs.Fields(2) & ";" & rs.Fields(3) & ";" & rs.Fields(4) & ";" & rs.Fields(5) & ";" & rs.Fields(6))
.ColumnHeads = True
rs.MoveNext
End With
Loop
End If
Else
strextract = "SELECT * FROM emp_details JOIN dept_details ON emp_details.E_Dept = dept_details.D_Name WHERE dept_details.D_Name = '" & strfield & "';"
Set cmdtext.ActiveConnection = cn
cmdtext.CommandType = adCmdText
cmdtext.CommandText = strextract
Set rs = cmdtext.Execute
'Me.lstbox.RowSourceType = "Value List"
Me.lstbox.AddItem ("EMP-ID" & ";" & "EMP-NAME" & ";" & "EMP-DEPT" & ";" & "EMP-SALARY" & ";" & "DEPT_ID" & ";" & "DEPT_NAME" & ";" & "DEPT_HEAD")
If (rs.RecordCount <> 0) Then
Do While Not rs.EOF
With Me.lstbox
.AddItem (rs.Fields(0) & ";" & rs.Fields(1) & ";" & rs.Fields(2) & ";" & rs.Fields(3) & ";" & rs.Fields(4) & ";" & rs.Fields(5) & ";" & rs.Fields(6))
.ColumnHeads = True
rs.MoveNext
End With
Loop
End If
End If
End Sub

Public Sub Form_Load()
Dim cnnstring As String
cnnstring = "Driver={MySQL ODBC 8.0 UNICODE Driver};Server=localhost;Database=My_Project2;Uid=root;Pwd=password;"
If cn.State = 0 Then
cn.Open cnnstring
End If
Dim cquery As String
cquery = "SELECT * FROM dept_details;"
'FULL OUTER JOIN dept_details ON emp_details.E-Dept = dept_details.D_NAME

With rs
Set .ActiveConnection = cn
.Source = cquery
.LockType = adLockOptimistic
.CursorType = adOpenKeyset
.Open
End With
rs.MoveFirst

With Me.cmb1
.AddItem "ALL"
Do
cmb1.AddItem rs!D_Name
rs.MoveNext
Loop Until rs.EOF
End With
rs.Close
End Sub


Private Sub Form_Open(Cancel As Integer)
Dim cnnstring As String
cnnstring = "Driver={MySQL ODBC 8.0 UNICODE Driver};Server=localhost;Database=My_Project2;Uid=root;Pwd=password;"
cn.Open cnnstring
Dim cquery As String
cquery = "SELECT * FROM dept_details;"
'FULL OUTER JOIN dept_details ON emp_details.E-Dept = dept_details.D_NAME

With rs
Set .ActiveConnection = cn
.Source = cquery
.LockType = adLockOptimistic
.CursorType = adOpenKeyset
.Open
End With
rs.MoveFirst

With Me.cmb1
.AddItem "ALL"
Do
cmb1.AddItem rs!D_Name
rs.MoveNext
Loop Until rs.EOF
End With
rs.Close
End Sub


Private Sub lstbox_DblClick(Cancel As Integer)
'If cn.State = 1 Then
'cn.Close
'End If

Dim listid As Long
listid = Me.lstbox.Value
DoCmd.Close acForm, "Form_Form3"
DoCmd.OpenForm "Form4", OpenArgs:=listid
End Sub

列表框用于列出数据,而不是编辑数据。

要以类似方式查看数据并选择编辑这些数据,请使用DatasheetView中的表单。

将它作为子表单放置在您的主表单中。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM