以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]非绑定控件的数据写入问题!  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=93508)

--  作者:pengdx123
--  发布时间:2016/11/30 10:38:00
--  [求助]非绑定控件的数据写入问题!

图片点击可在新窗口打开查看此主题相关图片如下:6vm8d)c~mi1{x(50@ca)h5d.png
图片点击可在新窗口打开查看

请问像这种窗口,未绑定相应的表,怎么样才能在点击确定时,将填入的数据写入到指定的表里?我试了数组和集合,但是都不成功,所以过来请教一下,麻烦蓝大师或其他大神帮我写一段代码或给我一些提示!万分感谢!

--  作者:有点蓝
--  发布时间:2016/11/30 10:57:00
--  
Dim dr As Row = Tables("表A").AddNew
dr("第一列") = Forms("窗口1").Controls("ComboBox1").Text

--  作者:pengdx123
--  发布时间:2016/11/30 11:51:00
--  
非常感谢蓝大师!
--  作者:pengdx123
--  发布时间:2016/11/30 17:31:00
--  
 Dim bj As Row = Tables("物料档案").AddNew
For Each c As WinForm.Control In e.Form.Controls
    If Typeof c Is winform.textbox Then
        Dim t As WinForm.TextBox = c
        If t.Value Is Nothing Then
            MessageBox.Show("请将" & t.Name & "内容填写完整!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Question)
            Return
        Else
            With Forms("添加部件")
                bj("部件代码") = .Controls("代码").Text
                bj("部件名称") = .Controls("名称").Text
                bj("规格") = .Controls("规格").Text
                bj("尺寸") = .Controls("尺寸").Text
                bj("材质") = .Controls("材质").Text
                bj("重量") = .Controls("重量").Text
                bj("单位") = .Controls("单位").Text
                bj("价格") = .Controls("价格").Text
                bj("备注") = .Controls("备注").Text
            End With
        End If
    End If
Next
bj.Save
e.Form.Close

蓝大师:我根据你的代码写的,麻烦你帮我看一下,写入值的下半部分能不能也弄个循环啊?请再给个思路!感谢

--  作者:有点蓝
--  发布时间:2016/11/30 17:45:00
--  
要想有规律首先要做有规律的事情

把所有文本框的名称改为表格对应的列名

For Each c As WinForm.Control In e.Form.Controls
    If Typeof c Is winform.textbox Then
        Dim t As WinForm.TextBox = c
        If t.Value Is Nothing Then
            MessageBox.Show("请将" & t.Name & "内容填写完整!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Question)
            Return
        End If
    End If
Next
Dim bj As Row = Tables("物料档案").AddNew
For Each c As WinForm.Control In e.Form.Controls
    If Typeof c Is winform.textbox Then
        Dim t As WinForm.TextBox = c
        bj(t.name) = t.Text
    End If
Next

--  作者:pengdx123
--  发布时间:2016/11/30 22:26:00
--  
万分感谢!让我又触类旁通了!图片点击可在新窗口打开查看
--  作者:pengdx123
--  发布时间:2016/11/30 22:27:00
--  
这段代码应该还可以再简写!