Esempio n. 1
0
        //DataTable from the linked external database with coulumns including a controlling field and updating fields.
        private void CreateSourceTable()
        {
            try
            {
                oAccess = new Access.Application();

                foreach (string tableName in externalFields.Keys)
                {
                    LinkedParameter linkedParam = externalFields[tableName];
                    DataTable sourceTable = new DataTable(linkedParam.TableName);
                    sourceTable.Columns.Add(linkedParam.ControlField);

                    foreach (string updateParam in linkedParam.UpdateParameterField.Keys)
                    {
                        string updateField = linkedParam.UpdateParameterField[updateParam];
                        sourceTable.Columns.Add(updateField);
                    }

                    oAccess.OpenCurrentDatabase(linkedParam.DBPath);
                    oAccess.Visible = false;
                    extDB = oAccess.CurrentDb();

                    string strFields = "";
                    foreach (DataColumn col in sourceTable.Columns)
                    {
                        strFields += " [" + col.ColumnName + "],";
                    }

                    strFields=strFields.Substring(0, strFields.Length - 1);//to remove the last colone in the string

                    string sqlQuery = "SELECT" + strFields + " FROM [" + linkedParam.TableName + "]";

                    Recordset recordset;
                    recordset = extDB.OpenRecordset(sqlQuery);

                    DataRow row;
                    while (!recordset.EOF)
                    {
                        row = sourceTable.NewRow();

                        foreach (DataColumn column in sourceTable.Columns)
                        {
                            row[column] = recordset.Fields[column.ColumnName].Value;
                        }
                        sourceTable.Rows.Add(row);
                        recordset.MoveNext();
                    }
                    recordset.Close();
                    if (null != oAccess.CurrentDb()) { oAccess.CloseCurrentDatabase(); }
                    sourceTables.Add(tableName, sourceTable);
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show("Cannot create source tables. \n" + ex.Message, "ExternalReference Error:", MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }
        }
Esempio n. 2
0
        public IEnumerable <SearchResultModel> SearchFile(string path, string searchTerm)
        {
            if (application.CurrentDb() != null)
            {
                application.CloseCurrentDatabase();
            }
            // deze regex split tekst op per lijn, zodat we lijnnummer van zoekresultaat kunnen bepalen
            var regex = new Regex($".*\n?");

            application.OpenCurrentDatabase(path);
            foreach (VBProject project in application.VBE.VBProjects)
            {
                foreach (VBComponent component in project.VBComponents)
                {
                    var lineCount = component.CodeModule.CountOfLines;
                    for (int i = 1; i < lineCount; i++)
                    {
                        var content = component.CodeModule.Lines[i, 1];
                        if (content.ToLower().Contains(searchTerm.ToLower()))
                        {
                            yield return(new SearchResultModel(path, component.Name, i, content));
                        }
                    }
                }
            }

            foreach (AccessObject queryObject in application.CurrentData.AllQueries)
            {
                QueryDef query = application.CurrentDb().OpenQueryDef(queryObject.Name);
                if (regex.IsMatch(query.SQL))
                {
                    var matches = regex.Matches(query.SQL);
                    for (int i = 0; i < matches.Count; i++)
                    {
                        if (matches[i].Value.ToLower().Contains(searchTerm.ToLower()))
                        {
                            yield return(new SearchResultModel(path, "Query: " + query.Name, i + 1, matches[i].Value.Trim('\n', '\r')));
                        }
                    }
                }
            }

            application.CloseCurrentDatabase();
        }
Esempio n. 3
0
        public void CloseDatabase()
        {
            if (null != oAccess.CurrentDb()) { oAccess.CloseCurrentDatabase(); }
            oAccess.Quit();
            System.Runtime.InteropServices.Marshal.ReleaseComObject(oAccess);
            GC.Collect();

            foreach (Process pr in Process.GetProcessesByName("MSACCESS"))
            {
                pr.Kill();
            }
        }
Esempio n. 4
0
        public RevitDBEditor(UIApplication uiapp, string dbfile)
        {
            try
            {
                m_app  = uiapp;
                doc    = m_app.ActiveUIDocument.Document;
                dbPath = dbfile;

                oAccess = new Access.Application();
                oAccess.OpenCurrentDatabase(dbPath, false);
                daoDB           = oAccess.CurrentDb();
                oAccess.Visible = false;

                ReadExcludeInst();
                ReadFamilyData(); //Reading FamilyInfo table to collect pre-selected typeID for symboltoExclude
                ReadSyncData();   //Reading Auto-Sync settings
                CheckNewTypes();  //Check if there are new families added or removed for synchronization
            }
            catch (Exception ex)
            {
                MessageBox.Show("Failed to start RevidDBEditor: \n" + ex.Message);
                CloseDatabase();
            }
        }
Esempio n. 5
0
        private void Chercher_Click(object sender, EventArgs e)
        {
            string strFileName = "C:/Users/" + Environment.UserName.ToString() + "/Documents/Palene_Gest_Vente.accdb"; //File Name To Open txtARSource.Text.Trim();
            OpenFileDialog ofdAccReport = new OpenFileDialog();
            ofdAccReport.FileName = strFileName;
                //Create New Open File Dialog

               //Set File Filter For OFD ofdAccReport.Filter = "Microsoft Access (*.accdb)|*.accdb)";

              /* if (strFileName.Length > 0) //If File Selected
               {

                   ofdAccReport.FileName = strFileName;

               }

               if (ofdAccReport.ShowDialog() == DialogResult.Cancel) //If Cancelled
               {

                   return;

               }

             */

            lstARReports.Items.Clear(); //Erase Previous ListBox Items

            objAccApp.Application app = new objAccApp.Application(); //Instantiate Access Object

            app.Visible = false; //Do Not Display Access Window

            app.OpenCurrentDatabase(ofdAccReport.FileName, false, ""); //Open Selected Access Database

            string strReportSQL = "SELECT [Name] FROM MSysObjects WHERE Type = -32764"; //Search All Access Reports

            dao.Database daoDB = (DAO.Database)app.CurrentDb(); //Open The Access Database

            dao.Recordset rsReports = daoDB.OpenRecordset(strReportSQL, Type.Missing, Type.Missing, Type.Missing); //Find All Reports

            while (!rsReports.EOF)
            {

                lstARReports.Items.Add(rsReports.Fields[0].Value); //Add Each Report Name To The ListBox

                rsReports.MoveNext(); //Continue

            }

            rsReports.Close(); //Close All Objects
            daoDB.Close();
            app.CloseCurrentDatabase();

            rsReports = null; //Release All Resources
            daoDB = null;
            app = null;
        }