Spojení dat ze dvou MDB   otázka

SQL, Databáze

Vážení zkušení, poraďte začátečníkovi. Věřte, dlouho jsem váhal vás s touto banalitou otravovat, ale veškeré mé pokusy ztroskotaly... Tedy... Jak spojím data z tabulek ze dvou MDB (MDB1, MDB2) souborů data do jedné (Provider OLEDB)? Obě tabulky mají stejnou strukturu. Zatím se mi zadařilo data z obou tabulek zobrazit pomocí operace UNION v jedné Datagridview. Nejsem ale schopen to, co vidím v Datagridview uložit do tabulky souboru např. MDB1? Děkuji a ještě jednou se omlouvám za asi stupidní dotaz....

MH

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

Na tomto dotazu není zas až tolik stupidního. Potřebujete to udělat jednorázově, nebo to má dělat aplikace? Pokud jednorázově, určitě to bude umět Access.

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

Měla by to umět aplikace vytvořená ve VB 2005. Aplikace slouží k pořizování dat databáze několika uživateli, každý na svém PC. Rád bych do aplikace zakomponoval možnost přidat záznamy od ostatních spolupracovníků. Děkuji.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

No v tom případě budete muset asi pomocí kódu připojit se k jednomu souboru a k druhému souboru, na prvním si udělat Select z té tabulky a běěhem procházení záznamů volat inserty na druhém spojení do druhé tabulky.

Using con1 As New OleDbConnection("zdrojový soubor")
Using con2 As New OleDbConnection("cílový soubor")
Using com1 As New OleDbCommand("SELECT * FROM Tab1", con1)
Using com2 As New OleDbCommand("INSERT INTO Tab1 (Sl1, Sl2) VALUES (?, ?)", con2)
com2.Parameters.Add("Sl1", OleDbType.VarChar)
com2.Parameters.Add("Sl2", OleDbType.Int)
Dim r As OleDbDataReader = com1.ExecuteQuery()
While r.Read()
    com2.Parameters("Sl1").Value = r("Sl1")
    com2.Parameters("Sl2").Value = r("Sl2")
    com2.ExecuteNonQuery()
End While
End Using
End Using
End Using
End Using

Nejsem si jistý, jestli tam nejsou nějaké chyby, s OleDb jsem dělal jen jednou, ale mělo by to být stejné jako u MS Sql serveru, API je v .NETu stejné.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Děkuji za kód, zatím jsem to ale nerozchodil... V řádku

Dim r As OleDbDataReader = com1.ExecuteQuery()

mi to hlásí chybu

'ExecuteQuery' is not a member of 'System.Data.OleDb.OleDbCommand'.

Mám importováno "Imports System.Data.OleDb".

Co s tím?

Děkuji.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Pardon, patří tam ExecuteReader.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Tak jsem opravil, zadal zdrojový a cílový soubor, sloupce, při spuštění však na řádku

Using con1 As New OleDbConnection("U:\sport1.mdb")

hlásí chybu

"Formát inicializačního řetězce neodpovídá specifikaci počínaje indexem 0."

Což bohužel opět nevím, co znamená...

Pokud mi ještě odpovíte, budu rád. Určitě Vaše řešení bude "učesanější" než mé, které se mi podařilo rozběhat. V zájmu Vašeho duševního zdraví však kód raději nepřikládám...:o) Ale funguje!!!

Děkuji za Vaši trpělivost

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Pokud vám to funguje, tak snadno zjistíte, v čem je problém u mé ukázky. Předpokládám, že to také budete schopen opravit, je to jednoduché, je špatně connectionString.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

A jede to jak po másle...

Abych tak často neotravoval, doporučil byste mi nějakou moderní učebnici obecně k programování či konkrétně k Visual Basicu? Cesta pokus-omyl mne už přestává bavit a studiu jsem přístupný...:o).

Děkuji.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

O učebnicích moc přehled nemám. Pokud chcete základy, máte zde na webu docela dlouhý seriál pro začátečníky.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Děkuji.

nahlásit spamnahlásit spam 0 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:
Heslo:

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback