<?xml version="1.0" encoding="UTF-8"?>
<helpdocument version="1.0">
	
<!--***********************************************************
 * 
 * Licensed to the Apache Software Foundation (ASF) under one
 * or more contributor license agreements.  See the NOTICE file
 * distributed with this work for additional information
 * regarding copyright ownership.  The ASF licenses this file
 * to you under the Apache License, Version 2.0 (the
 * "License"); you may not use this file except in compliance
 * with the License.  You may obtain a copy of the License at
 * 
 *   http://www.apache.org/licenses/LICENSE-2.0
 * 
 * Unless required by applicable law or agreed to in writing,
 * software distributed under the License is distributed on an
 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 * KIND, either express or implied.  See the License for the
 * specific language governing permissions and limitations
 * under the License.
 * 
 ***********************************************************-->


 
	
<meta>
      <topic id="textsharedexplorerdatabasedabadocxml" indexer="include" status="PUBLISH">
         <title xml-lang="en-US" id="tit">Database File</title>
         <filename>/text/shared/explorer/database/dabadoc.xhp</filename>
      </topic>
   </meta>
   <body>
      <section id="dabadoc">
         <paragraph xml-lang="en-US" id="par_idN10544" role="heading" level="1" l10n="NEW"><link href="text/shared/explorer/database/dabadoc.xhp">Database File</link></paragraph>
         <paragraph xml-lang="en-US" id="par_idN10554" role="paragraph" l10n="NEW"><ahelp hid=".">The database file window organizes the tables, views, queries, and reports of a database in %PRODUCTNAME.</ahelp></paragraph>
      </section>
      <section id="relatedtopics">
         <paragraph xml-lang="en-US" id="par_idN105B7" role="paragraph" l10n="NEW"><link href="text/shared/explorer/database/main.xhp">Working with databases in %PRODUCTNAME</link></paragraph>
      </section>
   </body>
</helpdocument>