472,960 Members | 1,851 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 472,960 software developers and data experts.

Bug in MSXML / XML Parser .Net

Hi,

I have a problem parsing XML file using XSLT stylesheet by using :

using System.Xml;
using System.Xml.XPath;
using System.Xml.Xsl;

// load Xsl stylesheet
XslTransform myXslTrans = new XslTransform() ;
myXslTrans.Load(Server.MapPath("stylesheet.xslt")) ;

// load the Xml doc
XPathDocument myXPathDoc = new XPathDocument(Server.MapPath("file.xml"));

// write the transformed result
XmlTextWriter writer = new XmlTextWriter(Server.MapPath("result.xml"), null);

// do the actual transform of Xml
// pass XmlResolver to Transform() method
myXslTrans.Transform(myXPathDoc, null, writer, null);
writer.Close();
XML file

<?xml version="1.0" encoding="utf-8"?>

<Documents>
<Document chapter="1" title="title 1" href="file1.xml" filter="">
<Article title="1.1" info="sub" filter="food"/>
<Article title="1.2" info="main" filter="food"/>
</Document>
<Document chapter="2" title="title 2" href="file2.xml" filter="drink">
<Article title="2.1" info="sub" filter="drink"/>
<Article title="2.2" info="main" filter="food"/>
</Document>
</Documents>
XSLT stylesheet

<?xml version='1.0' encoding='UTF-8'?>

<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<!-- using muenchian method group by an attribute by asigning a unique
key to each element -->

<xsl:output method="html" version="1.0" encoding="UTF-8" indent="yes"/>

<!-- xsl:key name="by-proctype" match="Doc" use="@proceduretype"/ -->

<!-- define info key -->
<xsl:key name="by-info" match="Article" use="@info"/>

<!-- put the filter string in a global parameter -->
<xsl:param name="filter" select="'food'"/>

<xsl:template match="Documents"><!-- @filter='' will be true if it is
there and empty or if it is not there at all) -->

<documents>
<xsl:for-each select="Document[@filter='' or
@filter=$filter]/Article[count(.|key('by-info',@info)[@filter='' or
@filter=$filter][1])=1]">
<document name="{@info}"><xsl:copy-of
select="key('by-info',@info)[@filter=$filter]"/></document>
</xsl:for-each>
</documents>
</xsl:template>

</xsl:stylesheet>
Exception Details:

System.NullReferenceException: Object reference not set to an instance of an
object."

Stack Trace:

[NullReferenceException: Object reference not set to an instance of an
object.]
System.Xml.XPath.FilterQuery.SetXsltContext(XsltCo ntext input)
System.Xml.XPath.FilterQuery.SetXsltContext(XsltCo ntext input)
System.Xml.XPath.MergeFilterQuery.SetXsltContext(X sltContext input)
System.Xml.XPath.OrQuery.SetXsltContext(XsltContex t context)
System.Xml.XPath.MethodOperand.SetXsltContext(Xslt Context context)
System.Xml.XPath.LogicalExpr.SetXsltContext(XsltCo ntext context)
System.Xml.XPath.FilterQuery.SetXsltContext(XsltCo ntext input)
System.Xml.XPath.MergeFilterQuery.SetXsltContext(X sltContext input)
System.Xml.XPath.CompiledXpathExpr.SetContext(XmlN amespaceManager
nsManager)
System.Xml.Xsl.Processor.GetCompiledQuery(Int32 key)
System.Xml.Xsl.Processor.StartQuery(XPathNavigator context, Int32 key)
System.Xml.Xsl.ForEachAction.Execute(Processor processor, ActionFrame
frame)
System.Xml.Xsl.ActionFrame.Execute(Processor processor)
System.Xml.Xsl.Processor.Execute()
System.Xml.Xsl.XslTransform.Transform(XPathNavigat or input,
XsltArgumentList args, XmlWriter output, XmlResolver resolver)
System.Xml.Xsl.XslTransform.Transform(IXPathNaviga ble input,
XsltArgumentList args, XmlWriter output, XmlResolver resolver)
com.pop.mm_main_v2.Page_Load(Object sender, EventArgs e) in
c:\inetpub\wwwroot\file\index.aspx.cs:61
......
When I use XMLSpy to parse the XML using MSXML 4 processor it works perfect.
Saxon works perfectly as well. But when I try to parse it trough C#, I get
the error above.

It looks like I don't use MSXML 4 at all.

How do I make sure that MSXML 4 is used when I parse?

Thank you,

-Mike
Nov 12 '05 #1
7 3325
I have figured out that this is a parser issue.
My IE is using version 3.0 set as default in registry.

http://www.perfectxml.com/articles/xml/XSLTInMSXML.asp

There must be a way to set this in a namespace so, IE does understand what
processor to use.

/Michael

"Michael" wrote:
Hi,

I have a problem parsing XML file using XSLT stylesheet by using :

using System.Xml;
using System.Xml.XPath;
using System.Xml.Xsl;

// load Xsl stylesheet
XslTransform myXslTrans = new XslTransform() ;
myXslTrans.Load(Server.MapPath("stylesheet.xslt")) ;

// load the Xml doc
XPathDocument myXPathDoc = new XPathDocument(Server.MapPath("file.xml"));

// write the transformed result
XmlTextWriter writer = new XmlTextWriter(Server.MapPath("result.xml"), null);

// do the actual transform of Xml
// pass XmlResolver to Transform() method
myXslTrans.Transform(myXPathDoc, null, writer, null);
writer.Close();
XML file

<?xml version="1.0" encoding="utf-8"?>

<Documents>
<Document chapter="1" title="title 1" href="file1.xml" filter="">
<Article title="1.1" info="sub" filter="food"/>
<Article title="1.2" info="main" filter="food"/>
</Document>
<Document chapter="2" title="title 2" href="file2.xml" filter="drink">
<Article title="2.1" info="sub" filter="drink"/>
<Article title="2.2" info="main" filter="food"/>
</Document>
</Documents>
XSLT stylesheet

<?xml version='1.0' encoding='UTF-8'?>

<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<!-- using muenchian method group by an attribute by asigning a unique
key to each element -->

<xsl:output method="html" version="1.0" encoding="UTF-8" indent="yes"/>

<!-- xsl:key name="by-proctype" match="Doc" use="@proceduretype"/ -->

<!-- define info key -->
<xsl:key name="by-info" match="Article" use="@info"/>

<!-- put the filter string in a global parameter -->
<xsl:param name="filter" select="'food'"/>

<xsl:template match="Documents"><!-- @filter='' will be true if it is
there and empty or if it is not there at all) -->

<documents>
<xsl:for-each select="Document[@filter='' or
@filter=$filter]/Article[count(.|key('by-info',@info)[@filter='' or
@filter=$filter][1])=1]">
<document name="{@info}"><xsl:copy-of
select="key('by-info',@info)[@filter=$filter]"/></document>
</xsl:for-each>
</documents>
</xsl:template>

</xsl:stylesheet>
Exception Details:

System.NullReferenceException: Object reference not set to an instance of an
object."

Stack Trace:

[NullReferenceException: Object reference not set to an instance of an
object.]
System.Xml.XPath.FilterQuery.SetXsltContext(XsltCo ntext input)
System.Xml.XPath.FilterQuery.SetXsltContext(XsltCo ntext input)
System.Xml.XPath.MergeFilterQuery.SetXsltContext(X sltContext input)
System.Xml.XPath.OrQuery.SetXsltContext(XsltContex t context)
System.Xml.XPath.MethodOperand.SetXsltContext(Xslt Context context)
System.Xml.XPath.LogicalExpr.SetXsltContext(XsltCo ntext context)
System.Xml.XPath.FilterQuery.SetXsltContext(XsltCo ntext input)
System.Xml.XPath.MergeFilterQuery.SetXsltContext(X sltContext input)
System.Xml.XPath.CompiledXpathExpr.SetContext(XmlN amespaceManager
nsManager)
System.Xml.Xsl.Processor.GetCompiledQuery(Int32 key)
System.Xml.Xsl.Processor.StartQuery(XPathNavigator context, Int32 key)
System.Xml.Xsl.ForEachAction.Execute(Processor processor, ActionFrame
frame)
System.Xml.Xsl.ActionFrame.Execute(Processor processor)
System.Xml.Xsl.Processor.Execute()
System.Xml.Xsl.XslTransform.Transform(XPathNavigat or input,
XsltArgumentList args, XmlWriter output, XmlResolver resolver)
System.Xml.Xsl.XslTransform.Transform(IXPathNaviga ble input,
XsltArgumentList args, XmlWriter output, XmlResolver resolver)
com.pop.mm_main_v2.Page_Load(Object sender, EventArgs e) in
c:\inetpub\wwwroot\file\index.aspx.cs:61
.....
When I use XMLSpy to parse the XML using MSXML 4 processor it works perfect.
Saxon works perfectly as well. But when I try to parse it trough C#, I get
the error above.

It looks like I don't use MSXML 4 at all.

How do I make sure that MSXML 4 is used when I parse?

Thank you,

-Mike

Nov 12 '05 #2
As a workaround I used generate-id() function in Muenchian method instead of
count():
Something with numeric predicate I think.

<xsl:for-each select="Document[@filter='' or
@filter=$filter]/Article[generate-id()=generate-id(key('by-info',@info)[@filter='' or @filter=$filter])]">

Now it works as it should.

--Michael

"Michael" wrote:
I have figured out that this is a parser issue.
My IE is using version 3.0 set as default in registry.

http://www.perfectxml.com/articles/xml/XSLTInMSXML.asp

There must be a way to set this in a namespace so, IE does understand what
processor to use.

/Michael

"Michael" wrote:
Hi,

I have a problem parsing XML file using XSLT stylesheet by using :

using System.Xml;
using System.Xml.XPath;
using System.Xml.Xsl;

// load Xsl stylesheet
XslTransform myXslTrans = new XslTransform() ;
myXslTrans.Load(Server.MapPath("stylesheet.xslt")) ;

// load the Xml doc
XPathDocument myXPathDoc = new XPathDocument(Server.MapPath("file.xml"));

// write the transformed result
XmlTextWriter writer = new XmlTextWriter(Server.MapPath("result.xml"), null);

// do the actual transform of Xml
// pass XmlResolver to Transform() method
myXslTrans.Transform(myXPathDoc, null, writer, null);
writer.Close();
XML file

<?xml version="1.0" encoding="utf-8"?>

<Documents>
<Document chapter="1" title="title 1" href="file1.xml" filter="">
<Article title="1.1" info="sub" filter="food"/>
<Article title="1.2" info="main" filter="food"/>
</Document>
<Document chapter="2" title="title 2" href="file2.xml" filter="drink">
<Article title="2.1" info="sub" filter="drink"/>
<Article title="2.2" info="main" filter="food"/>
</Document>
</Documents>
XSLT stylesheet

<?xml version='1.0' encoding='UTF-8'?>

<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<!-- using muenchian method group by an attribute by asigning a unique
key to each element -->

<xsl:output method="html" version="1.0" encoding="UTF-8" indent="yes"/>

<!-- xsl:key name="by-proctype" match="Doc" use="@proceduretype"/ -->

<!-- define info key -->
<xsl:key name="by-info" match="Article" use="@info"/>

<!-- put the filter string in a global parameter -->
<xsl:param name="filter" select="'food'"/>

<xsl:template match="Documents"><!-- @filter='' will be true if it is
there and empty or if it is not there at all) -->

<documents>
<xsl:for-each select="Document[@filter='' or
@filter=$filter]/Article[count(.|key('by-info',@info)[@filter='' or
@filter=$filter][1])=1]">
<document name="{@info}"><xsl:copy-of
select="key('by-info',@info)[@filter=$filter]"/></document>
</xsl:for-each>
</documents>
</xsl:template>

</xsl:stylesheet>
Exception Details:

System.NullReferenceException: Object reference not set to an instance of an
object."

Stack Trace:

[NullReferenceException: Object reference not set to an instance of an
object.]
System.Xml.XPath.FilterQuery.SetXsltContext(XsltCo ntext input)
System.Xml.XPath.FilterQuery.SetXsltContext(XsltCo ntext input)
System.Xml.XPath.MergeFilterQuery.SetXsltContext(X sltContext input)
System.Xml.XPath.OrQuery.SetXsltContext(XsltContex t context)
System.Xml.XPath.MethodOperand.SetXsltContext(Xslt Context context)
System.Xml.XPath.LogicalExpr.SetXsltContext(XsltCo ntext context)
System.Xml.XPath.FilterQuery.SetXsltContext(XsltCo ntext input)
System.Xml.XPath.MergeFilterQuery.SetXsltContext(X sltContext input)
System.Xml.XPath.CompiledXpathExpr.SetContext(XmlN amespaceManager
nsManager)
System.Xml.Xsl.Processor.GetCompiledQuery(Int32 key)
System.Xml.Xsl.Processor.StartQuery(XPathNavigator context, Int32 key)
System.Xml.Xsl.ForEachAction.Execute(Processor processor, ActionFrame
frame)
System.Xml.Xsl.ActionFrame.Execute(Processor processor)
System.Xml.Xsl.Processor.Execute()
System.Xml.Xsl.XslTransform.Transform(XPathNavigat or input,
XsltArgumentList args, XmlWriter output, XmlResolver resolver)
System.Xml.Xsl.XslTransform.Transform(IXPathNaviga ble input,
XsltArgumentList args, XmlWriter output, XmlResolver resolver)
com.pop.mm_main_v2.Page_Load(Object sender, EventArgs e) in
c:\inetpub\wwwroot\file\index.aspx.cs:61
.....
When I use XMLSpy to parse the XML using MSXML 4 processor it works perfect.
Saxon works perfectly as well. But when I try to parse it trough C#, I get
the error above.

It looks like I don't use MSXML 4 at all.

How do I make sure that MSXML 4 is used when I parse?

Thank you,

-Mike

Nov 12 '05 #3
Hello,

This looks like a Bug! How can this be reported to Microsoft to appropriate
developer team?

Something with numeric predicate I think.
As a workaround you can use generate-id() function in Muenchian method
instead of count():

<xsl:for-each select="Document[@filter='' or
@filter=$filter]/Article[generate-id()=generate-id(key('by-info',@info)[@filter='' or @filter=$filter])]">

-Michael
"Michael" wrote:
I have figured out that this is a parser issue.
My IE is using version 3.0 set as default in registry.

http://www.perfectxml.com/articles/xml/XSLTInMSXML.asp

There must be a way to set this in a namespace so, IE does understand what
processor to use.

/Michael

"Michael" wrote:
Hi,

I have a problem parsing XML file using XSLT stylesheet by using :

using System.Xml;
using System.Xml.XPath;
using System.Xml.Xsl;

// load Xsl stylesheet
XslTransform myXslTrans = new XslTransform() ;
myXslTrans.Load(Server.MapPath("stylesheet.xslt")) ;

// load the Xml doc
XPathDocument myXPathDoc = new XPathDocument(Server.MapPath("file.xml"));

// write the transformed result
XmlTextWriter writer = new XmlTextWriter(Server.MapPath("result.xml"), null);

// do the actual transform of Xml
// pass XmlResolver to Transform() method
myXslTrans.Transform(myXPathDoc, null, writer, null);
writer.Close();
XML file

<?xml version="1.0" encoding="utf-8"?>

<Documents>
<Document chapter="1" title="title 1" href="file1.xml" filter="">
<Article title="1.1" info="sub" filter="food"/>
<Article title="1.2" info="main" filter="food"/>
</Document>
<Document chapter="2" title="title 2" href="file2.xml" filter="drink">
<Article title="2.1" info="sub" filter="drink"/>
<Article title="2.2" info="main" filter="food"/>
</Document>
</Documents>
XSLT stylesheet

<?xml version='1.0' encoding='UTF-8'?>

<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<!-- using muenchian method group by an attribute by asigning a unique
key to each element -->

<xsl:output method="html" version="1.0" encoding="UTF-8" indent="yes"/>

<!-- xsl:key name="by-proctype" match="Doc" use="@proceduretype"/ -->

<!-- define info key -->
<xsl:key name="by-info" match="Article" use="@info"/>

<!-- put the filter string in a global parameter -->
<xsl:param name="filter" select="'food'"/>

<xsl:template match="Documents"><!-- @filter='' will be true if it is
there and empty or if it is not there at all) -->

<documents>
<xsl:for-each select="Document[@filter='' or
@filter=$filter]/Article[count(.|key('by-info',@info)[@filter='' or
@filter=$filter][1])=1]">
<document name="{@info}"><xsl:copy-of
select="key('by-info',@info)[@filter=$filter]"/></document>
</xsl:for-each>
</documents>
</xsl:template>

</xsl:stylesheet>
Exception Details:

System.NullReferenceException: Object reference not set to an instance of an
object."

Stack Trace:

[NullReferenceException: Object reference not set to an instance of an
object.]
System.Xml.XPath.FilterQuery.SetXsltContext(XsltCo ntext input)
System.Xml.XPath.FilterQuery.SetXsltContext(XsltCo ntext input)
System.Xml.XPath.MergeFilterQuery.SetXsltContext(X sltContext input)
System.Xml.XPath.OrQuery.SetXsltContext(XsltContex t context)
System.Xml.XPath.MethodOperand.SetXsltContext(Xslt Context context)
System.Xml.XPath.LogicalExpr.SetXsltContext(XsltCo ntext context)
System.Xml.XPath.FilterQuery.SetXsltContext(XsltCo ntext input)
System.Xml.XPath.MergeFilterQuery.SetXsltContext(X sltContext input)
System.Xml.XPath.CompiledXpathExpr.SetContext(XmlN amespaceManager
nsManager)
System.Xml.Xsl.Processor.GetCompiledQuery(Int32 key)
System.Xml.Xsl.Processor.StartQuery(XPathNavigator context, Int32 key)
System.Xml.Xsl.ForEachAction.Execute(Processor processor, ActionFrame
frame)
System.Xml.Xsl.ActionFrame.Execute(Processor processor)
System.Xml.Xsl.Processor.Execute()
System.Xml.Xsl.XslTransform.Transform(XPathNavigat or input,
XsltArgumentList args, XmlWriter output, XmlResolver resolver)
System.Xml.Xsl.XslTransform.Transform(IXPathNaviga ble input,
XsltArgumentList args, XmlWriter output, XmlResolver resolver)
com.pop.mm_main_v2.Page_Load(Object sender, EventArgs e) in
c:\inetpub\wwwroot\file\index.aspx.cs:61
.....
When I use XMLSpy to parse the XML using MSXML 4 processor it works perfect.
Saxon works perfectly as well. But when I try to parse it trough C#, I get
the error above.

It looks like I don't use MSXML 4 at all.

How do I make sure that MSXML 4 is used when I parse?

Thank you,

-Mike

Nov 12 '05 #4
Michael wrote:
I have figured out that this is a parser issue.
My IE is using version 3.0 set as default in registry.


IE always using MSXML3. The on;y way to use MSXML4 is scripting.

--
Oleg Tkachenko [XML MVP]
http://blog.tkachenko.com
Nov 12 '05 #5
I do not manage to add new message to the list (I must choose a discussion
group but the list is empty !) so I put my post hier as reply... It's also a
kind of MSXSL bug.

I'd just like to spécify a probable "exeption" in SelectSingleNode() method.
The spec says :
"var objXMLDOMNode = oXMLDOMNode.selectSingleNode(queryString);
Where queryString is a string specifying an XPath expression."

But if you for example aim at matching the SECOND <foo> node of a context
node, you must write selectSingleNode(foo[1])
the FIRST one is selectSingleNode(foo[0])

Normaly, Xpath index position start at 1 (foo[1] is the short for
foo[position()=1]) :
<xsl:value-of select="foo[1]"> will match the FISRT foo node in XSL.

About the SelectSingleNode() spec queryString is not a real XPath
expression, because of this exeption (maybe there are others ?), isn't it ?
Nov 12 '05 #6
I did not manage to add a new message (I shall choose a discussion group but
the list is empty !) so I send it here as reply since it's also a kind of
Msxsml bug...

I'd just like to spécify a probable "exeption" in SelectSingleNode() method.
The spec says :
"var objXMLDOMNode = oXMLDOMNode.selectSingleNode(queryString);
Where queryString is a string specifying an XPath expression."

But if you for example aim at matching the SECOND <foo> node of a context
node, you must write selectSingleNode(foo[1])
the FIRST one is selectSingleNode(foo[0])

Normaly, Xpath index position start at 1 (foo[1] is the short for
foo[position()=1]) :
<xsl:value-of select="foo[1]"> will match the FISRT foo node in XSL.

About the SelectSingleNode() spec queryString is not a real XPath
expression, because of this exeption (maybe there are others ?), isn't it ?
Nov 12 '05 #7
mattmat wrote:
I'd just like to spécify a probable "exeption" in SelectSingleNode() method.
The spec says :
"var objXMLDOMNode = oXMLDOMNode.selectSingleNode(queryString);
Where queryString is a string specifying an XPath expression."

But if you for example aim at matching the SECOND <foo> node of a context
node, you must write selectSingleNode(foo[1])
the FIRST one is selectSingleNode(foo[0])


Well, chances are you are using MSXML3, where selection language by
default isn't XPath, but some obsoleted language called XSL Pattern. I
have no idea which number position starts in that language.
Set XPath as selection language using SelectionLanguage property.

PS. And it has nothing to do with .NET of course.
--
Oleg Tkachenko [XML MVP]
http://blog.tkachenko.com
Nov 12 '05 #8

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

1
by: Alastair Cameron | last post by:
I have a VB (VB6, not .NET) application that reads an XML file (using MSXML v3.2 parser); the XML file contains a reference to an external DTD. The DTD has numerous enumerated attribute...
1
by: OKI | last post by:
Hi. Ive made a XML parser using MSXML2.LIB in a computer. When ive tried to run it in another one like that: HRESULT hr = CoCreateInstance(CLSID_DOMDocument, NULL, CLSCTX_INPROC_SERVER,...
2
by: Bill Cunningham | last post by:
For some reason I can't find on my win98 IE5 or 5.5 the msxml2.5 parser that's supposed to be there. Does anyone know where I can get one? Also if I was running my linux system. Where could I get...
1
by: Olav | last post by:
I have an element that looks like this: <PhoneNumber>&lt;NUMBER&gt;</PhoneNumber> I would like to have the content returned as "<NUMBER>". Not only don't I get the character references resolved,...
19
by: Mark Miller | last post by:
QUESTION: Does anyone know how I can use v2.6 of the MSXML parser with .NET? BACKGROUND: I "Web to Print" process that allows our clients (newspapers) to export their data and pass it thru a...
4
by: JohnArgost | last post by:
I try to learn how to parser XML files. Should I learn MSXML or .NET (system.xml) or both. Is MSXML an old technology which is replaced by .NET? Thanks in advance.
4
by: K | last post by:
I've an XML file in UTF-8. It contains some chinese characters ( both simplified chinese and traditional chinese). In loading the XML file with MSXML parser, I used the below code to retrieve...
13
by: yawnmoth | last post by:
<http://www.quirksmode.org/book/printable/xmlhttp.txtshows two alternatives to Microsoft.XMLHTTP - Msxml2.XMLHTTP and Msxml3.XMLHTTP. If my understanding is correct, the different numbers refer to...
1
by: JJA | last post by:
I'm working on part of a site (see http://gis.cbmiweb.com/MDWmaps/default.asp) where I thought everything was working fine for IE6, IE7 and Firefox. Recently, I discovered this failed for an IE7...
0
by: lllomh | last post by:
Define the method first this.state = { buttonBackgroundColor: 'green', isBlinking: false, // A new status is added to identify whether the button is blinking or not } autoStart=()=>{
2
by: DJRhino | last post by:
Was curious if anyone else was having this same issue or not.... I was just Up/Down graded to windows 11 and now my access combo boxes are not acting right. With win 10 I could start typing...
2
isladogs
by: isladogs | last post by:
The next Access Europe meeting will be on Wednesday 4 Oct 2023 starting at 18:00 UK time (6PM UTC+1) and finishing at about 19:15 (7.15PM) The start time is equivalent to 19:00 (7PM) in Central...
0
tracyyun
by: tracyyun | last post by:
Hello everyone, I have a question and would like some advice on network connectivity. I have one computer connected to my router via WiFi, but I have two other computers that I want to be able to...
2
by: giovanniandrean | last post by:
The energy model is structured as follows and uses excel sheets to give input data: 1-Utility.py contains all the functions needed to calculate the variables and other minor things (mentions...
3
NeoPa
by: NeoPa | last post by:
Introduction For this article I'll be using a very simple database which has Form (clsForm) & Report (clsReport) classes that simply handle making the calling Form invisible until the Form, or all...
1
by: Teri B | last post by:
Hi, I have created a sub-form Roles. In my course form the user selects the roles assigned to the course. 0ne-to-many. One course many roles. Then I created a report based on the Course form and...
0
NeoPa
by: NeoPa | last post by:
Introduction For this article I'll be focusing on the Report (clsReport) class. This simply handles making the calling Form invisible until all of the Reports opened by it have been closed, when it...
0
isladogs
by: isladogs | last post by:
The next online meeting of the Access Europe User Group will be on Wednesday 6 Dec 2023 starting at 18:00 UK time (6PM UTC) and finishing at about 19:15 (7.15PM). In this month's session, Mike...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.