<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="https://www.infopathdev.com:443/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>SQL Database Integration</title><link>https://www.infopathdev.com:443/forums/47.aspx</link><description>For questions concerning issues in the integration of SQL and Microsoft InfoPath.</description><dc:language>en</dc:language><generator>CommunityServer 2007 SP3 (Build: 31118.962)</generator><item><title>Cannot submit programmatically to SQL server</title><link>https://www.infopathdev.com:443/forums/thread/60977.aspx</link><pubDate>Tue, 02 Nov 2010 04:25:38 GMT</pubDate><guid isPermaLink="false">033a2e2d-04e2-4a9d-be01-a4634161eefd:60977</guid><dc:creator>josera</dc:creator><slash:comments>0</slash:comments><comments>https://www.infopathdev.com:443/forums/thread/60977.aspx</comments><wfw:commentRss>https://www.infopathdev.com:443/forums/commentrss.aspx?SectionID=47&amp;PostID=60977</wfw:commentRss><description>&lt;p&gt;Pretty desperate here. Please help.&lt;/p&gt;
&lt;p&gt;From a first form I open a second form programmatically. All operations on the second form are done programmatically. These operations are:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;div&gt;Open the second form&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;Fill out the form&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;Submit it to its &amp;quot;SQL server&amp;quot; DB&lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;
&lt;p&gt;But I get this message: &lt;strong&gt;InfoPath cannot submit the form. The form does not contain any new data to submit to the data source.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;The data is shown on the screen, so obviously is changed.&lt;br /&gt;The first form submits if I do the same operations programmatically in it.&lt;/p&gt;
&lt;p&gt;I have tried all the workarounds that I could think of but I always get the same error message. It only works if I manually change something.&lt;/p&gt;
&lt;p&gt;This is the code that I use:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&amp;#39; Open the second form&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; dim objXDoc&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; set objXDoc = Application.XDocuments.NewFromSolution(&amp;quot;&lt;/strong&gt;&lt;a&gt;&lt;strong&gt;\\Ssa\processes\InfopathTemplates\CronoNumber.xsn&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt;&amp;quot;)&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&amp;#39; Fill out the second form&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; dim f&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; set f = objXDoc.DOM.selectSingleNode(&amp;quot;/dfs:myFields/dfs:dataFields/d:CronoNumbers/@DocumentType&amp;quot;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; f.text = &amp;quot;Purchase Order&amp;quot;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&amp;#39; Submit the second form&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; objXDoc.Submit&lt;br /&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;The second form works perfectly when used&amp;nbsp;manually.&lt;/p&gt;
&lt;p&gt;One of the workarounds I have tried, also programmatically, is this:&lt;/p&gt;
&lt;div&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;div&gt;Open the second form&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;Fill out the form&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;Save the second form to a file&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;Close the second form&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;Change the contents of the file&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;Rename the file&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;Open the modified&amp;nbsp; and renamed file&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;Submit it to its &amp;quot;SQL server&amp;quot; DB&lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;
&lt;p&gt;and still get the same error message. This is the code:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&amp;#39; Open the second form&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; dim objXDoc&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; set objXDoc = Application.XDocuments.NewFromSolution(&amp;quot;&lt;/strong&gt;&lt;a&gt;&lt;strong&gt;\\Ssa\processes\InfopathTemplates\CronoNumber.xsn&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt;&amp;quot;)&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;&lt;strong&gt;&amp;#39; Fill out the second form&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; dim f&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; set f = objXDoc.DOM.selectSingleNode(&amp;quot;/dfs:myFields/dfs:dataFields/d:CronoNumbers/@DocumentType&amp;quot;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; f.text = &amp;quot;Purchase Order&amp;quot;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&amp;#39; Save&amp;nbsp;the form in a temporary file&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; objXDoc.SaveAs(&amp;quot;C:\\MyForm.xml&amp;quot;)&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&amp;#39; Close the form&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; objXDoc.CloseDocument&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&amp;#39; Open the file&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; const ForReading = 1, ForWriting = 2&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; dim objFSO&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; dim strFile&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; dim tf&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set objFSO=CreateObject(&amp;quot;Scripting.FileSystemObject&amp;quot;)&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; set tf = objFSO.OpenTextFile(&amp;quot;C:\\MyForm.xml&amp;quot;, ForReading)&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; strFile = tf.ReadAll&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; tf.Close&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&amp;#39; Modification of the file&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;dim re, s&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; set re = new RegExp&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; re.Pattern = &amp;quot;DocumentType=&amp;quot;&amp;quot;Purchase Order&amp;quot;&amp;quot;&amp;quot;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; s = re.Replace(strFile, &amp;quot;DocumentType=&amp;quot;&amp;quot;New content&amp;quot;&amp;quot;&amp;quot;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set re = Nothing&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&amp;#39; Write the modified file with different filename&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; set tf = objFSO.OpenTextFile(&amp;quot;C:\\MyForm1.xml&amp;quot;, ForWriting, true)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; tf.Write(s)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; tf.Close&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; set tf = nothing&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&amp;#39; Open the modified file&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; dim objXDoc1&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; set objXDoc1 = Application.XDocuments.Open(&amp;quot;C:\MyForm1.xml&amp;quot;)&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&amp;#39; Submit the second form&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; objXDoc1.Submit&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;I have tried to get it to work for several days, I have googled for it and I have not found any explanation or workaround.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;I ran out of ideas to try. Please help.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;/strong&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Josera&lt;/strong&gt;&lt;/p&gt;</description></item></channel></rss>