[英]How to display data from mysql database in X-editable select based on data-attribute
[英]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.