Temat: Struktura bazy danych
żeby nie zaczynać nowego tematu
Pytanie odnośnie ODBC(mysql)+Msaccess
Jak przechowywać obrazki msaccess w bazie danych mysql ?
Możesz przechowywać obrazy w bazie mysql, np.
CREATE TABLE 'nazwaBazy'.'nazwaTablicy' (
'picId' INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
'picCaption' VARCHAR(45) NOT NULL,
'picExtension' VARCHAR(3) NOT NULL,
'image' LONGBLOB NOT NULL,
PRIMARY KEY('picId')
)
TYPE = InnoDB;
Tak możesz przechowywać dane binarne do 1 MB. W przypadku obszerniejszych obrazków musisz zwiększyć wartość opcji max_allowed_packed w pliku konfiguracji serwera.
Niemniej, to rozwiązanie bardzo obciąża bazę - lepiej zastosować rozwiązanie, że tworzysz sobie katalog, w którym trzymasz pliki graficzne. Gdy dodajesz plik, pobiera się identyfikator z kolumny auto_increment i zmienia nazwę pliku na ten identyfikator. To rozwiązanie dużo szybsze i stosowane jako powszechna praktyka.
Bartosz Ś.:
czy posiadacie przykłady jakiś bardziej rozwiniętych baz danych które dodają rekordy poprzez VBA.
Byłbym wdzięczny za jakiś złożony przykład, bym mógł się na nim oprzeć.
Twój formularz opiera się o zdarzenia, że jak coś wybierzesz, to w innym polu pojawi się coś z tym związanego. Tego nie zrobisz bez VBA. Poniżej przykład
‘ Aby połączyć się z bazą danych przez DAO, trzeba dodać odpowiednią referencję
‘ Menu->Tool->References->Microsoft DAO 3.6 Object Library
Sub wczytujZBazy()
Dim mydb As Database ‘ zmienna reprezentująca bazę danych
Dim myrs As Recordset ‘ zmienna reprezentująca zestaw rekordów
‘ wczytywanie bazy danych do pierwszej, wolnej przestrzeni roboczej, w której zostanie
‘ umieszczony zestaw rekordów
Set mydb = workspaces(0).OpenDatabase(“C:\Users\nn.mdb”)
‘ uruchomienie kwerendy i zapisanie wyników w zmiennej
Set myrs = mydb.openrecordset(“Kwerenda1”)
‘ lub
‘ Set myrs = mydb.OpenRecordset(“Select * From …”)
Dim i As Integer ‘ licznik
i = 1
While Not myrs.EOF
Cells(i, 1).Value = myrs!Liczebność
Cells(i, 2).Value = myrs!Nazwa_grupy
myrs.movenext
i = i + 1
Wend
mydb.Close ‘ zamknięcie okna bazy danych
Set myrs = Nothing ‘ zwolnienie pamięci
Set mydb = Nothing ‘ zwolnienie pamięci
End Sub
Abyś miał w formularzu przegląd danych, zobacz sobie obiekt GridView.
Pozdrawiam:
Nikodem