我的问题可能令人困惑,我正在寻找一种解决问题的方法来维护'用Access编写的系统。
有一个包含数据的表单,我需要获取txtFields值,listBox值并将它们添加为存储在另一个表中的每个电话号码的sql行。
例如,dbShift包含很少的电话号码(从8到15),并且每8小时都会切换一次。
当工人提交带有“机器故障”的表格时,维护办公室会通过访问前端接收表单。
此信息也需要添加到另一个表中,我们将其称为dbSMS,我们将在其中存储:nrMaszyny,nazwaMaszyny,Zglaszajacy,Przyczyna,Obszar,Telefon。
现在,对于存储在dbShift中的每个电话号码(通过为此表创建的表单切换号码),此消息需要重复。
所有这一切都是为了自动化流程并从我们公司的调制解调器自动发送短信,因此维护员工将立即得到有关问题的通知,而不仅仅是通过他们的车间前端。
似乎一切都已完成,但我仍然坚持实施“每个人”的方式。收集必要信息并将其添加到表中的方法,其中调制解调器可以通过SMS提供数据以传递它。
也许我错了,也许有更好的方式,而不是“为每个人”?
有什么想法吗?
dbShift : ID,姓名,电话号码
dbSms : nrMaszyny,nazwaMaszyny,Zglaszajacy,Przyczyna,Obszar,Telefon(来自FORM的数据,工人发送机器故障表格)
此表格的代码:
Option Compare Database
Private Sub buttonZamknijFormrularz_Click()
DoCmd.Close DoCmd.OpenForm "MainLoginForm"
Forms!MainLoginForm!txtPassword.Value = ""
End Sub
Private Sub cmdAdd_Click()
If IsNull(Me.listPrzyczyna) Or Me.listPrzyczyna = "" Then
MsgBox "Wybierz przyczynę awarii!", vbOKOnly, "Wymagane dane"
Me.listPrzyczyna.SetFocus
Else
Dim strSQL As String
strSQL = "INSERT INTO dbAwarieOtwarte (nrMaszyny, nazwaMaszyny, Zglaszajacy, dataZgloszenia, dataZakonczenia,
godzinaZgloszenia, Przyczyna, Obszar, Telefon, Komentarz) VALUES ('" &
Me!txtNrMaszyny & "', '" & Me!txtNazwa & "', '" & Me!txtZglaszajacy &
"', '" & Me!txtData & "', '" & Me!txtData & "', '" & Me!txtGodzina &
"', '" & Me!listPrzyczyna & "," & Me!txtNazwa & "," & Me!txtNrMaszyny
& "," & Me!txtObszar & "', '" & Me!txtObszar & "', '" & Me!txtTel &
"', '" & Me!txtKomentarz & "');"
DoCmd.SetWarnings False
DoCmd.RunSQL strSQL
DoCmd.SetWarnings True
DoCmd.Close ' DoCmd.OpenReport "repAwariaOtwarta", acViewPreview, , "ID=" & DMax("ID", "dbAwarieOtwarte")
End If
End Sub
Private Sub Polecenie35_Click()
DoCmd.Close DoCmd.OpenForm "formMaszynyObszar1"
End Sub
答案 0 :(得分:0)
我建议修改你的代码以执行以下操作...你说有另一个带有电话号码的表,所以我将循环通过该表。不确定你是否想要使用DAO或ADO,所以我坚持使用DAO。
Private Sub cmdAdd_Click()
Dim dbs as DAO.Database
Dim rsPhone as DAO.Recordset
If IsNull(Me.listPrzyczyna) Or Me.listPrzyczyna = "" Then
MsgBox "Wybierz przyczynę awarii!", vbOKOnly, "Wymagane dane"
Me.listPrzyczyna.SetFocus
Else
Dim strSQL As String
Set dbs = CurrentDB
Set rsPhone = dbs.OpenRecordset("<YourPhoneTable>")
Do While Not rsPhone.EOF
'<<< MAKE YOUR CHANGES TO GRAB THE PHONE NUMBER if needed for the following SQL
' 3/10/16 - changed SQL to add phonenumber to the insert.
strSQL = "INSERT INTO dbAwarieOtwarte (nrMaszyny, nazwaMaszyny, Zglaszajacy, dataZgloszenia, dataZakonczenia,
godzinaZgloszenia, Przyczyna, Obszar, Telefon, Komentarz, PhoneNumber) VALUES ('" &
Me!txtNrMaszyny & "', '" & Me!txtNazwa & "', '" & Me!txtZglaszajacy &
"', '" & Me!txtData & "', '" & Me!txtData & "', '" & Me!txtGodzina &
"', '" & Me!listPrzyczyna & "," & Me!txtNazwa & "," & Me!txtNrMaszyny
& "," & Me!txtObszar & "', '" & Me!txtObszar & "', '" & Me!txtTel &
"', '" & Me!txtKomentarz & "', '" & rsPhone!PhoneNumber & "');"
'DoCmd.SetWarnings False
dbs.Execute strSQL
'DoCmd.SetWarnings True
rsPhone.moveNext
Loop
rsPhone.Close
set rsPhone = Nothing
dbs.close
set dbs = Nothing
DoCmd.Close ' DoCmd.OpenReport "repAwariaOtwarta", acViewPreview, , "ID=" & DMax("ID", "dbAwarieOtwarte")
End If
End Sub